Dynamic implementation and management of hash-based consent and permissioning protocols

ABSTRACT

The disclosed exemplary embodiments include computer-implemented systems, apparatuses, and processes that dynamically implement and manage hash-based consent and permissioning protocols. By way of example, an apparatus may obtain consent data that identifies one or more elements of data accessible to an application program executed by a device. The apparatus may generate a consent document for the application program based on at least a portion of the consent data, and may compute a consent hash value representative of the consent document. The apparatus may also generate and transmit permissioning data that includes at least the consent hash value to the device. The permissioning data may, for example, include information that instructs the executed application program to store the consent hash value within a local memory of the device and to associate the consent hash value with an access token of the executed application program.

TECHNICAL FIELD

The disclosed embodiments generally relate to computer-implementedsystems and processes that dynamically implement and manage hash-basedconsent and permissioning protocols.

BACKGROUND

Many computing environments include multiple, network-connected devicesand systems that maintain, access, or distribute confidential dataacross various communications networks. For example, in an open bankingenvironment, these computing systems may maintain programmaticinterfaces capable of establishing communications, and exchanging data,with one or more third-party applications executed by additionalnetwork-connected devices and systems. For example, a third-partyapplication, such as an executable financial management application, mayaccess elements of confidential customer and account data maintained onbehalf of a customer by computing systems of one or more financialinstitutions, and may perform operations to process, aggregate, ordisplay portions of the obtained customer and account data on a digitalinterface, e.g., via the customer's mobile device.

SUMMARY

In some examples, an apparatus includes a communications interface, amemory storing instructions, and at least one processor coupled to thecommunications interface and the memory. The at least one processor isconfigured to execute the instructions to obtain consent data thatidentifies one or more elements of data accessible to an applicationprogram executed by a device, generate a consent document for theapplication program based on at least a portion of the consent data, andcompute a consent hash value representative of the consent document. Theat least one processor is further configured to generate and transmit,via the communications interface, permissioning data that includes theconsent hash value to the device. The permissioning data includesinformation that instructs the executed application program to store theconsent hash value within a local memory of the device and to associatethe consent hash value with an access token of the executed applicationprogram.

In other examples, a computer-implemented method, includes obtaining,using at least one processor, consent data that identifies one or moreelements of data accessible to an application program executed by adevice, and using the at least one processor, generating a consentdocument for the application program based on at least a portion of theconsent data and computing a hash value representative of the consentdocument. The computer-implemented method also includes generating andtransmitting, using the at least one processor, permissioning data thatincludes the consent hash value to the device. The permissioning dataincludes information that instructs the executed application program tostore the consent hash value within a local memory of the device and toassociate the consent hash value with an access token of the executedapplication program.

Further, in some examples, an apparatus includes a communicationsinterface, a memory storing instructions, and at least one processorcoupled to the communications interface and to the memory. The at leastone processor is configured to execute the instructions to receive, viathe communications interface, a request for an element of data from adevice. The request is generated by an application program executed atthe device, and the request includes a first consent hash value. The atleast one processor is further configured to obtain a consent documentassociated with the application program and a second consent hash valuerepresentative of the consent document, determine that the first consenthash value corresponds to the second consent hash value, and determinethat requested data element is accessible to the application programbased on the consent document. Further, the at least one processor isconfigured to load the requested data element from the memory, encryptthe requested data element, and transmit the encrypted data element tothe device via the communications interface.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory onlyand are not restrictive of the invention, as claimed. Further, theaccompanying drawings, which are incorporated in and constitute a partof this specification, illustrate aspects of the present disclosure andtogether with the description, serve to explain principles of thedisclosed embodiments as set forth in the accompanying claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary computing environment, inaccordance with some embodiments.

FIG. 2A is a diagram illustrating a portion of an exemplary computingenvironment, in accordance with some embodiments.

FIG. 2B is a diagram of an exemplary digital interface, in accordancewith some embodiments.

FIGS. 2C-2D, 3A-3B, and 4A-4B are diagrams illustrating portions of anexemplary computing environment, in accordance with some embodiments.

FIGS. 4C-4D are diagrams of exemplary digital interfaces, in accordancewith some embodiments.

FIG. 4E is a diagram illustrating a portion of an exemplary computingenvironment, in accordance with some embodiments.

FIGS. 5-7 are flowcharts of exemplary processes for dynamicallyimplementing and managing hash-based consent and permissioningprocesses, in accordance with some embodiments.

DETAILED DESCRIPTION

Reference will now be made in detail to the disclosed embodiments,examples of which are illustrated in the accompanying drawings. The samereference numbers in the drawings and this disclosure are intended torefer to the same or like elements, components, and/or parts.

In this application, the use of the singular includes the plural unlessspecifically stated otherwise. In this application, the use of “or”means “and/or” unless stated otherwise. Furthermore, the use of the term“including,” as well as other forms such as “includes” and “included,”is not limiting. In addition, terms such as “element” or “component”encompass both elements and components comprising one unit, and elementsand components that comprise more than one subunit, unless specificallystated otherwise. Additionally, the section headings used herein are fororganizational purposes only, and are not to be construed as limitingthe described subject matter.

I. Exemplary Computing Environments

FIG. 1 illustrates components of an exemplary computing environment 100,in accordance with some exemplary embodiments. As illustrated in FIG. 1,environment 100 may include one or more computing devices, such asclient device 102 operated by a user 101, and one or more computingsystems, such as computing system 130. Environment 100 may also includeone or more peer systems 180, such as, but not limited to, peer system182. In some instances, each of client device 102, computing system 130,and peer systems 180 (including peer system 182) may be interconnectedacross one or more wired or wireless communications networks, such ascommunications network 120. Examples of network 120 include, but are notlimited to, a wireless local area network (LAN), e.g., a “Wi-Fi”network, a network utilizing radio-frequency (RF) communicationprotocols, a Near Field Communication (NFC) network, a wirelessMetropolitan Area Network (MAN) connecting multiple wireless LANs, and awide area network (WAN), e.g., the Internet.

Client device 102 may include a computing device having one or moretangible, non-transitory memories that store data and/or softwareinstructions, such as memory 106, and one or more processors, such asprocessor 104, configured to execute the software instructions. Asdescribed herein, client device 102 may be associated with or operatedby a user, such as user 101, and examples of client device 102 include,but are not limited to, as a smart phone, tablet computer, a desktopcomputer, a gaming console, a wearable device, or another computingdevice, system, or apparatus associated with user 101.

The one or more tangible, non-transitory memories of client device 102may store application programs, application modules, and other elementsof code executable by the one or more processors. For example, asillustrated in FIG. 1, client device 102 may maintain, within memory106, an application repository 108 that includes, among other things, anexecutable mobile banking application 110 and one or more executablethird-party applications, such as executable third-party applications112 and 114. In some instances, executable mobile banking application110 may be provisioned to client device 102 by a computing systemoperated by, or associated with, a financial institution that providesfinancial services to user 101, e.g., computing system 130.

Further, each of the executable third-party applications, includingexecutable third-party applications 112 and 114, may be developed by andprovisioned to client device 102 by one or more computing systemsoperated by, or associated with, a corresponding third-party entity (notillustrated in FIG. 1). Examples of third-party applications 112 and 114include, but are not limited to, a financial management application, anthird-party financial aggregator application, and another applicationthat, when executed by processor 104, requests elements of confidentialdata maintained on behalf of user 101 by one or more computing systemsoperating within environment 100, such as computing system 130, andprocesses, aggregates, or displays portions of the requested elements ofthe confidential data within a corresponding digital interface.

Client device 102 may include a display unit 116A configured to presentinterface elements to user 101, and an input unit 116B configured toreceive input from a user of client device 102, such as user 101.Display unit 116A may include, but is not limited to, an LCD displayunit or other appropriate type of display unit, and input unit 116B mayinclude, but is not limited to, a keypad, keyboard, touchscreen,fingerprint scanner, voice activated control technologies, stylus, orany other appropriate type of input unit. Further, in some examples, thefunctionalities of display unit 116A and input unit 116B may be combinedinto a single device, such as a pressure-sensitive touchscreen displayunit that can present elements (e.g., a graphical user interface) andcan detect an input from user 101 via a physical touch. Client device102 may also include a communications interface 118, such as atransceiver device, coupled to processor 104 and configured to establishand maintain communications with communications network 120 via one ormore appropriate communications protocols.

Referring back to FIG. 1, each of computing system 130 and peer systems180 (including peer system 182) may represent a computing system thatincludes one or more servers and one or more tangible, non-transitorymemory devices storing executable code and application modules. The oneor more servers may each include one or more processors, which may beconfigured to execute portions of the stored code or application modulesto perform operations consistent with the disclosed embodiments.Further, in some examples, each of computing system 130 and peer systems180 (including peer system 182) may include a communications unit orinterface coupled to the one or more processors for accommodating wiredor wireless communication across network 120 with any of the additionalnetwork-connected systems or devices described herein, e.g., atransceiver device.

In some instances, each of computing system 130 and peer systems 180(including peer system 182) may correspond to a discrete computingsystem, as described herein. In other instances, one or more ofcomputing system 130 and peer systems 180 (including peer system 182)may correspond to a distributed system that includes computingcomponents distributed across one or more networks, such ascommunications network 120, or other networks, such as those provided ormaintained by cloud-service providers (e.g., Google Cloud™, MicrosoftAzure™, etc.). The disclosed embodiments are, however, not limited tothese exemplary distributed systems and, in other instances, computingsystem 130 and peer systems 180 (including peer system 182) may includecomputing components disposed within any additional or alternate numberor type of computing systems or across any appropriate network.

In some instances, computing system 130 may maintain elements ofconfidential data within the one or more tangible, non-transitorymemories, e.g., confidential data maintained on behalf of user 101. Forexample, computing system 130 may be associated with, or may be operatedby, a financial institution that provides financial services to user 101and other customers, and the confidential data may include, among otherthings, confidential profile data that characterizes user 101, accountdata identifying and characterizing one or more financial servicesaccounts or payment instruments held by user 101, or transaction dataidentifying and characterizing one or more transactions involving thefinancial services accounts or payment instruments.

In some instances, computing system 130 may perform any of the exemplaryprocesses described herein to provision one or more elements ofconfidential data requested by executed third-party applications 112 or114 in accordance with a type or level of consent previously granted byuser 101 (e.g., through the exemplary processes described herein), Tofacilitate a performance of these and other exemplary processes, such asthose described herein, computing system 130 may maintain, within one ormore tangible, non-transitory memories, a data repository 132 thatincludes a user database 134, a confidential data store 136, and aconsent data store 138.

For example, user database 134 may include data records that identifyand characterize one or more users of computing system 130, e.g., user101. For example, and for each of the users, the data records of userdatabase 134 may include a corresponding user identifier (e.g., analphanumeric login credential assigned to user 101 by computing system130), and data that uniquely identifies one or more devices (such asclient device 102) associated with or operated by that user (e.g., aunique device identifier, such as an IP address, a MAC address, a mobiletelephone number, etc., that identifies client device 102).

Confidential data store 136 may maintain elements of confidentialcustomer data on behalf of user 101 and other users of computing system130. For example, confidential data store 136 may include confidentialaccount data and confidential transaction data that identify andcharacterize a balance or transaction history of one or more paymentinstruments, deposit accounts, brokerage accounts, or other financialservices accounts issued to user 101 (e.g., by the financial institutionthat operates computing system 130). Further, and by way of example, oneor more data records of confidential data store 136 may also includecustomer profile data that identifies and characterizes user 101, suchas, but not limited to, a name or an address of user 101, one or moregovernmental identifiers of user 101 (e.g., a driver's license number, asocial security number, etc.), and demographic data that characterizesuser 101 (e.g., an age, a gender, an income level, etc.). In someinstances, each of the data records of confidential data store 136 mayalso include a corresponding user identifier (e.g., an alphanumericlogin credential assigned to user 101 by computing system 130) and/or acorresponding device identifier (e.g., the IP address, MAC address, ormobile telephone number of client device 102), and as such, each of thedata records confidential data store 136 may also be linked to, andassociated with, one or more corresponding data records within userdatabase 134.

Consent data store 138 may maintain, for one or more third-partyapplications, such as third-party application 112, informationindicative of a successful outcome of one or more of the exemplarydecoupled consent and permissioning protocols described herein, whichmay be implemented collectively by client device 102 (e.g., thoughexecuted mobile banking application 110, executed third-partyapplication 112, and additionally, or alternatively, executedthird-party application 114, etc.) and computing system 130 (e.g.,through an executed consent and permissioning engine). By way ofexample, consent data store 138 may maintain, on behalf of mobilebanking application 1110 and third-party applications 112 and 114, adigital token, cryptogram, hash value, or other element of cryptographicdata, e.g., an OAuth token, indicative of a permission of each of theseexecuted applications programs to access programmatic interfacesestablished and maintained by computing system 130.

Further, consent data store 138 may also maintain elements ofapplication-specific information that identifies and characterizes alevel of access to confidential data (e.g., as maintained inconfidential data store 136) granted to third-party applications 112 and114 by user 101, e.g., via any of the exemplary decoupled consent andpermissioning processes described herein. For example, and for each ofthird-party applications 112 and 114 (and any additional or alternatethird-party application executed by client device 102), the elements ofapplication-specific information may include: (i) a consent documentthat, among other things, includes data identifying one or moreaccessible types, classes, or elements of confidential data maintainedat computing system 130, and data identifying one or more permissibleoperations on the accessible types, classes, or elements of confidentialdata; and (ii) a consent hash value representative of the consentdocument. In some instances, each of the elements ofapplication-specific permissioning data (e.g., the consent document, theconsent hash value, etc.) may be linked to or associated with acorresponding one of the application-specific OAuth tokens and a uniqueapplication identifier within the data records of consent data store138.

The application-specific consent documents may, for example, beformatted in accordance with a data-interchange format, examples ofwhich include, but are not limited to, a JavaScript Object Notation(JSON) format, a YAML format, an Internet-JSON (I-JSON) format, an XMLformat, or any additional or alternate language-independent, dataserialization formats compatible with application programs executed byclient device 102 and computing system 130. Further, theapplication-specific consent hash values may represent acryptographically secure, and tamper-evident, attestation of the levelof access currently granted to corresponding ones of third-partyapplications 112 and 114 (and other third-party applications executableat client device 102).

In some instances, one or more of the application-specific consent hashvalues may include a cryptographic hash value representative of thecorresponding one of the application-specific consent documents, andcomputing system 130 may generate the cryptographic hash value based onan application of one or more cryptographic hash functions to thecorresponding one of the application-specific consent documents, eitheralone or in combination with additional data. Examples of thecryptographic hash functions includes, but are not limited to, a securehash algorithm (SHA), such as SHA-1, SHA-2, or SHA-256, and an MD5algorithm. In other examples, one or more of the application-specificconsent hash values may include a non-cryptographic hash value, andcomputing system 130 may generate the non-cryptographic hash value basedon an application of one or more of a non-cryptographic hash function ora universal hash function to the corresponding one of theapplication-specific consent documents, either alone or in combinationwith additional data.

Referring back to FIG. 1, computing system 130 may also maintain, withinthe one or more tangible, non-transitory memories, one or moreexecutable application programs 140, such as, but not limited to aconsent and permissioning engine 142. When executed by the one or moreprocessors of computing system 130, consent and permissioning engine 142may perform operations that, in conjunction with one or more applicationprograms executed at client device 102 (e.g., executed mobile bankingapplication 110, executed third-party applications 112 or 114, etc.),collectively implement one or more of the exemplary, decoupled consentand permissioning protocols described herein, which may decoupleprocesses that establish permission of one or more executed third-partyapplications to access a programmatic interface established andmaintained at computing system 130 from those processes that grant, andselectively modify or revoke, permission to each of the third-partyapplications to access elements of confidential data on anapplication-specific basis.

Referring back to FIG. 1, each of peer systems 180, such as peer system182, may maintain, within one or more tangible, non-transitory memories,a data repository 184 that includes a local copy of a cryptographicallysecure distributed ledger 186, which peer systems 180 (including peersystem 182) may establish and maintain using any of the exemplaryconsensus-based processes described herein. In some instances, asillustrated in FIG. 1, distributed ledger 186 may include ledger blocks,such as consent ledger blocks 188, that record OAuth tokens, consentdocuments, and additionally, or alternatively, hash valuesrepresentative of the consent documents for one or more third-partyapplications provisioned to computing devices and systems operatingwithin environment 100, such as, but not limited to, third-partyapplication 112 provisioned to client device 102.

For example, consent ledger blocks 188 may establish an immutable andcryptographically secure record of a temporal evolution in a type orlevel of consent granted to third-party application by user 101.Further, in some instances, peer systems 180 may perform any of theexemplary, consensus-based processes described herein to broadcastdistributed ledger 186 (and updates thereto) across network 120 to oneor more computer systems or devices that participate in a correspondingdistributed-ledger network, such as computing system 130.

II. Exemplary Processes for Dynamically Implementing and ManagingHash-Based Consent and Permissioning Protocols

FIG. 2A illustrate a portion of computing environment 100, in accordancewith some exemplary embodiments. Referring to FIG. 2A, user 101 mayprovide, to input unit 1168 of client device 102, input 202 thatrequests an execution of a third-party application program provisionedto client device 102, such as third-party application 112 (oralternatively, third-party application 114). For example, and based oninput 202, client device 102 may execute third-party application 112,and executed third-party application 112 may perform operations thatestablish a secure channel of communications with one or more computingsystems within environment 100 that maintain elements of confidentialdata on behalf of user 101. As described herein, computing system 130may maintain elements of confidential data on behalf of user 101 andother customers or users, and executed third-party application 112 mayperform operations that establish the secure channel of communicationswith a programmatic interface established and maintained by computingsystem 130, e.g., application programming interface (API) 204.

In some instances, and responsive to the establishment of the securecommunications channel, executed third-party application 112 maygenerate one or more interface elements that, when rendered forpresentation by display unit 116A, collectively establish one or moredisplay screens of a digital authentication interface (not illustratedin FIG. 2A). The digital authentication interface may prompt user 101 toprovide, via input unit 116B, one or more authentication credentialsthat uniquely identify user 101 at computing system 130, such as, butnot limited to, an alphanumeric login credential, an alphanumericpassword, or one or more biometric credentials, such as a digital imageof a face of user 101 or a digital scan of a thumbprint or fingerprintof user 101. In some instances, executed third-party application 112 mayreceive the one or more authentication credentials, e.g., via input unit116B, and may package the one or more authentication credentials and aunique device identifier of client device 102 (e.g., an IP address, aMAC address, etc.) into corresponding portions of authentication data,which client device 102 may transmit across network 120 to computingsystem 130.

Although not illustrated in FIG. 2A, API 204 may receive and route theauthentication data to consent and permissioning engine 142, which uponexecution by computing system 130, may parse the authentication data toextract the one or more authentication credentials of user 101 and thedevice identifier of client device 102. In some instances, executedconsent and permissioning engine 142 may access one or more localauthentication credentials maintained within an accessible datarepository (e.g., within user database 134 of data repository 132), andauthenticate an identity of user 101 based on a comparison between theextracted authentication credentials and the accessed localauthentication credentials.

If, for example, executed consent and permissioning engine 142 were toestablish an inconsistency between the extracted and localauthentication credentials, executed consent and permissioning engine142 may decline to authenticate the identity of user 101 and may declineto grant third-party application 112 access to computing system 130.Although not illustrated in FIG. 2A, executed consent and permissioningengine 142 may generate an error message and may perform operations thatcause computing system 130 to transmit the error message across network120 to client device 102, e.g., via a secure, programmatic interfaceestablished and maintained by executed third-party application 112.

In other instances, and based on an established consistency between theextracted and local authentication credentials, executed consent andpermissioning engine 142 may authenticate an identity of user 101.Responsive to the successful authentication, executed consent andpermissioning engine 142 may generate and store confirmation data (e.g.,a data flag, etc.) indicative of the successful authentication within anaccessible data repository, such as user database 134, in conjunctionwith the one or more of the authentication credentials of user 101(e.g., as a user identifier) or the device identifier of client device102.

Executed consent and permissioning engine 142 may also generate, andtransmit, across network 120 to client device 102, request data 206 thatrequests an initiation of one or more of the exemplary decoupled consentand permissioning protocols described herein, e.g., in conjunctionwithin executed third-party application 112. For example, request data206 may include unique identifier of computing system 130 (e.g., anassigned internet protocol (IP) address, etc.) or of executed consentand permissioning engine 142 (e.g., a cryptogram, hash value, or otherelement of cryptographic data that uniquely identifies consent andpermissioning engine 142 to executed third-party application 112).Request data 206 may also include information that identifies certaintypes or classes of confidential data maintained on behalf of user 101by computing system 130 (e.g., confidential profile, account, ortransaction data, etc.), along with certain data elements associatedwith each of the types or classes (e.g., elements of profile data thatinclude governmental identifiers, elements of transaction data thatinclude transaction times, transaction values, and identifiers ofcorresponding merchants or purchased products, elements of account datathat include account identifiers, account balances, etc.).

A secure programmatic interface established and maintained by executedthird-party application 112, such application programming interface(API) 208, may receive request data 206 from computing system 130 andmay route request data 206 to executed third-party application 112. Insome instances, a local authorization and consent module 210 of executedthird-party application 112 may process request data 206 and generateinterface elements 212 that, when rendered for presentation by displayunit 116A, collectively establish one or more display screens of adigital consent interface 214. The one or more display screens ofdigital consent interface 214 may prompt user 101 to provide input toclient device 102 that specifies whether user 101 grants third-partyapplication 112 permission to access certain types, classes, or discreteelements of the confidential data maintained by computing system 130,e.g., the confidential profile, account, or transaction data maintainedon behalf of user 101 by computing system 130.

As illustrated in FIG. 2A, display screen 214A of digital consentinterface 214 may prompt user 101 to provide input to client device 102that grants third-party application 112 access to the elements ofconfidential data maintained at computing system 130 on a global basis(e.g., to all available types or classes of confidential data), or thatselectively grants third-party application 112 access to the elements ofconfidential data on a semi-global basis (e.g., to a selected subset ofthe available types or classes of confidential data). For example,display screen 214A may include an interactive interface element, suchas slider element 216, that enables user 101 to grant, or deny,third-party application 112 access to each of the elements of theconfidential customer data, account data, and transaction data on aglobal basis. Further, display screen 214A may also include one or moreadditional interactive elements, such as slider elements 218, 220, and222, that enable user 101 to grant, or deny, third-party application 112access to respective elements of the confidential customer data (e.g.,slider element 218), the confidential account data (e.g., slider element220), and the confidential transaction data (e.g., slider element 222),on a semi-global bases, e.g., a class- or type-specific basis.

For example, and based on the input provided to client device 102, e.g.,via input unit 116B, user 101 may dispose slider element 218 at position218A within display screen 214A, which indicates an intention to denythird-party application 112 access to any of the elements ofconfidential customer data maintained on behalf of user 101 at computingsystem 130. Additionally, and based on the provided input, user 101 maydispose slider element 220 at position 220A within display screen 214A,and may dispose slider element 222 at position 222A within displayscreen 214A, which collectively indicate an intention to grantthird-party application 112 access to each of the elements ofconfidential account and transaction maintained on behalf of user 101 atcomputing system 130. Further, user 101 may elect to provide no input toslider element 216, which indicates user 101's intention to selectivelygrant third-party application 112 access to the elements of confidentialdata on a semi-global, and not a global, basis.

Display screen 214A may also include additional interface elements, suchas “SUBMIT” element 224, that, when selected by user 101 through theadditional provided input, confirm the level of access granted tothird-party application 112. In some instances, the selection of“SUBMIT” element 224 (e.g., based on the provided input) may causeexecuted third-party application 112 perform operations that submitconsent data indicative of the granted level of access to computingsystem 130, e.g., during the exemplary decoupled consent andpermissioning protocols described herein.

In other instances, one or more additional display screen of digitalconsent interface 214 may prompt user 101 to grant, or deny, third-partyapplication 112 access to one or more discrete elements of the types orclasses of confidential data identified within display screen 214A,e.g., the confidential customer data, account data, and transaction datamaintained at computing system 130. By way of example, as illustrated inFIG. 2A, display screen 214A may include additional interface elements,such as interactive elements 226, 228, and 230, that, when selected byuser 101, cause executed third-party application 112 generate and renderfor presentation additional interface screens facilitating a selectivegrant or denial of permission for third-party application 112 to accessspecific elements of the confidential customer data, account data, andtransaction data.

For example user 101 may elect to selectively grant, or deny,third-party application 112 access to one or more specific elements ofthe confidential transaction data maintained by computing system 130,and may provide additional input to client device 102 (e.g., via inputunit 116B) that selects interface element 230 within display screen214A. Responsive to the additional input selecting interface element230, executed third-party application 112 may access request data 206,e.g., as received from computing system 130, and may generate one ormore additional interface elements that, when rendered for presentationwithin an additional display screen of digital consent interface 214,identify discrete elements of confidential transaction data maintainedon behalf of user 101 at computing system 130 and prompt user 101 toselectively grant, or deny, executed third-party application 112 accessto one or more of these discrete elements of confidential transactiondata.

Referring to FIG. 2B, and responsive to the additional input selectinginterface element 230, executed third-party application 112 may generateand render for presentation a data-specific display screen 214B, whichincludes interactive interface elements, such as slider elements 232,234, 236, and 238, that enable user 101 to selectively grant, or deny,third-party application 112 access to (i) a transaction type, value, andtime for one or more transactions involving user 101 (e.g., sliderelement 232); (ii) a product or service involved in the one or moretransactions (e.g., slider element 234); (iii) a counterparty ormerchant involved in the one or more transactions; and (e.g., sliderelement 236); and a payment instrument involved in the one or moretransactions (e.g., slider element 240). Display screen 214B may alsoinclude further interface elements, such as “SUBMIT” element 240, that,when selected by user 101 through the additional provided input, confirmthe level of access granted to third-party application 112 (e.g., asdescribed herein in reference to “SUBMIT” element 224).

For example, user 101 may elect to grant third-party application 112access to the elements of confidential transaction data that identify atype, amount, and date of one or more transactions involving user 101,and may provide further input to client device 102 (e.g., via input unit116B) that disposes slider element 232 at position 232A within displayscreen 214B, which indicates an intention to grant third-partyapplication 112 access to the elements of confidential transaction dataidentifying the type, amount, and date of transactions involving user101. In other examples, user 101 may elect to deny third-partyapplication 112 access to any elements of confidential transaction datathat identify a product or service, a counterparty, or a paymentinstrument associated with transactions involving user 101. As describedherein, user 101 may provide further input to client device 102 (e.g.,via input unit 116B) that disposes that disposes slider elements 234,236, and 238 and respective ones of positions 234A, 236A, and 238Awithin display screen 214B, which indicates an intention to denythird-party application 112 access to the elements of confidentialtransaction data identifying the involved product or service,counterparty, and payment instrument. The further provided input mayalso indicate a selection of “SUBMIT” element 240, which confirms thelevel of access granted to executed third-party application 112

In other instances, not illustrated in FIG. 2B, user 101 may also electto selectively grant, or deny, executed third-party application accessto one or more discrete elements of confidential customer profile dataor confidential account data maintained at computing system 130, and mayprovide further input to client device 102 (e.g., via input unit 116B)that selects interactive elements 226 or 228 of display screen 214A,which causes executed third-party application 112 to generate and renderfor presentation additional interface screens facilitating a selectivegrant or denial of permission for executed third-party application 112to access discrete elements of the confidential customer profile data orthe confidential account data, e.g., using any of the exemplaryprocesses described herein.

The disclosed embodiments are however, not limited to these exemplaryinterface elements and display screens, and in other instances, digitalconsent interface 214 may include interface elements associated with anyadditional or alternate class or type of confidential data maintained onbehalf of user 101 (e.g., the profile data or account data describedherein) or any additional or alternate elements of these classes ortypes of confidential data, and may present these interface elementswithin an additional or alternate display screen of digital consentinterface 214, including a single display screen. Further, the discloseddigital interfaces and display screens are not limited to the exemplarytypes or functions of interface elements described herein (e.g.,selectable elements, slider elements, etc.), and into other examples,the disclosed digital interfaces and display screens may include anyadditional or alternate type of interface element characterized by anyadditional or alternate functionality, such as, but not limited to,fillable text boxes or check boxes.

Further, in some embodiments, one or more display screens of digitalconsent interface 214, such as data-specific display screen 214B, mayinclude additional or alternate interface elements that, when selectedby user 101 (e.g., based on additional input received via input unit116B), enable user 101 to permit a performance of one of more operationson selected classes or elements of confidential data by third-partyapplication 112. Examples of these operations can include, but are notlimited to, processing or aggregating elements of raw confidential data,presenting the elements of raw, aggregated, or processed confidentialdata within one or more digital interfaces, and distributing theelements of raw, aggregated, or confidential data to additionalcomputing systems operating within environment 100, or to applicationprograms executed by these additional computing systems (e.g., fourth-or fifth-party applications, etc.).

Referring to FIG. 2C, local authorization and consent module 210 mayreceive the additional input, e.g., additional input 254, via input unit116B. In some instances, local authorization and consent module 210 mayparse additional input 254 perform operations that extract informationidentifying: (i) the selective disposition of slider element 218 atposition 218A of display screen 214A, which indicates a denial of accessto the elements of confidential customer data; (ii) the selectivedisposition of slider element 220 at position 220A of display screen214A, which indicates a grant of access to the elements of confidentialaccount data; (iii) the selective disposition of slider element 232 atposition 232A of display screen 214B, which indicates a grant of accessto the elements of confidential transaction data that specify the value,type, or date of the one or more transactions; (iv) the selectivedisposition of slider elements 234, 236, and 238 at respective ones ofpositions 234A, 236A, and 238A of display screen 214B, which indicates adenial of access to the elements of confidential transaction data thatidentify the product or service, counterparty, or payment instrumentinvolved in the one or more transactions. In some instances, theextracted information may also identify the selection of “SUBMIT”element 240, which confirms the level of access granted to executedthird-party application 112 by user 101.

Local authorization and consent module 210 may perform operations thatpackage the extracted information into corresponding portions of consentdata 256. As illustrated in FIG. 2B, local authorization and consentmodule 210 may generate response data 258, which includes consent data256, and perform operations that cause client device 102 to transmitresponse data 258 across network 120 to API 204 of computing system 130,e.g., as a response to request data 206. Response data 258 may alsoinclude at least one of a unique user identifier 260A of user 101 (e.g.,an alphanumeric authentication credential, a biometric credential,etc.), a unique device identifier 260B of client device 102 (e.g., an IPaddress, a MAC address etc.), and a unique application identifier 260Cof executed third-party application 112 (e.g., a unique cryptogram, hashvalue, or other element of cryptographic data, etc.).

API 204 may provide response data 258 as an input to consent andpermissioning engine 142, which upon execution, may perform any of theexemplary processes described herein to generate a digital token,cryptogram, hash value, or other element of cryptographic data, e.g., anOAuth token, indicative of the prior successful authentication of user101, and to generate application-specific elements of information, suchas a consent document and a consent hash value, that identify,characterize, and represent the level of access to confidential datagranted third-party application 112 by user 101. In some instances,described herein, executed consent and permissioning engine 142 mayperform operations that store the OAuth token, consent document, andconsent hash value within an accessible data repository, such as consentdata store 138, in conjunction with one or more of identifiers 260A,260B, and 260C.

As illustrated in FIG. 2C, a validation module 262 of executed consentand permissioning engine 142 may receive response data 258 from API 204,and may perform operations that associate response data 258 with a priorand successful authentication of the identity of user 101, e.g., basedon one or more of user identifier 260A or device identifier 260B and theconfirmation data maintained within user database 134 (e.g.,confirmation data 263). Responsive to the association of response data258 with the prior and successful authentication, executed validationmodule 262 may provide response data 258 as an input to a consentmanagement module 266 of executed consent and permissioning engine 142.

In some instances, and based on portions of response data 258, executedconsent management module 242 may perform any of the exemplary processesdescribed herein to generate a consent document that reflects a level ofaccess granted by user 101 to third-party application 112, e.g., asspecified within consent data 256, and to compute one or more hashvalues representative that consent document. Executed consent managementmodule 242 may also perform any of the exemplary described hereinprocesses to generate a digital access token, cryptogram, hash value, orother element of cryptographic data, such as an OAuth token, indicativeof the prior successful authentication of the identity of user 101 and apermission of third-party application to access one or more programmaticinterfaces established or maintained by computing system 130.

By way of example, consent data 256 may indicate that user 101 deniedthird-party application 112 access to elements of confidential customerdata maintained at computing system 130, and granted third-partyapplication 112 access to any elements of confidential account datamaintained at computing system 130. Further, and as described herein,consent data 256 may also indicate that user 101 granted third-partyapplication 112 access to elements of confidential transaction datacharacterizing a transaction type, value, and time for one or moretransactions involving user 101, while denying access to any elements ofconfidential transaction data characterizing a payment instrument, aproduct or service, or a counterparty involved in these transactions.

In some instances, executed consent management module 266 may performoperations that package all or a portion of consent data 256 intocorresponding portions of a consent document 268, which as describedherein, may be formatted in accordance with a data interchange format.Examples of the data-interchange format include, but are not limited to,a JavaScript Object Notation (JSON) format, a YAML format, anInternet-JSON (I-JSON) format, an XML format, or any additional oralternate language-independent, data serialization formats compatiblewith executed third-party application, consent and permissioning engine142, and other application programs executed by client device 102 andcomputing system 130.

Executed consent management module 266 may also generate a consent hashvalue 270 representative of consent document 268, e.g., based on anapplication of any of the hash algorithms described herein to all or aselected portion of consent document 268, either alone or in conjunctionwithin additional data. In some instances, and as described herein,consent hash value 270 may correspond to a cryptographic hash value,e.g., computed using an SHA algorithm or an MD5 algorithm. In otherinstances, as described herein, consent hash value 270 may correspondingto a non-cryptographic hash value, e.g., computed based on anappropriate non-cryptographic hash algorithm or a universal hashalgorithm).

Executed consent management module 266 may perform further operationsthat generate a digital token, cryptogram, hash value, or other elementof cryptographic data, e.g., an OAuth token 272, indicative of thesuccessful authentication of the identity of user 101 and of thepermission of third-party application to access one or more programmaticinterfaces established or maintained by computing system 130. OAuthtoken 272 may, in some instances, be characterized by a predeterminedstructure or format recognizable by executed consent and permissioningengine 142 and further, by executed third-party application 112. In someexamples, executed consent management module 242 may generate OAuthtoken 272 (or any additional or alternate digital token, cryptogram,hash value, or cryptographic data element) based on an application ofone or more tokenization processes to portions of consent data 256, useridentifier 260A, device identifier 2606, and/or application identifier260C.

As illustrated in FIG. 2C, executed consent management module 266 mayperform operations that store, within consent data store 138, consentdocument 268, consent hash value 270, and OAuth token 272 in conjunctionwith user identifier 260A (e.g., which uniquely identifiesnow-authenticated user 101), device identifier 260B (e.g., whichidentifies client device 102), and application identifier 260C (e.g.,which identifies third-party application 112). In some examples, thestorage of consent document 268, consent hash value 270, OAuth token272, and identifiers 260A, 260B, and 260C within consent data store 138may associate consent document 268, consent hash value 270, and OAuthtoken 246 with user 101, with client device 102, and further, withexecuted third-party application 112. Further, consent document 268 andconsent hash value 270 may also establish, and be indicative of, acurrent attestation by computing system 130 of a level of type of accessto confidential data granted third-party application by user 101.

In other examples, executed consent management module 266 may performoperations that package consent document 268, consent hash value 270,and application identifier 260C (e.g., which identifies third-partyapplication 112) into corresponding portions of recordation data 274.Executed consent management module 266 may further apply a digitalsignature 276 to recordation data 274, e.g., using a privatecryptographic key of computing system 130, and may perform operationsthat cause computing system 130 to broadcast recordation data 274,applied digital signature 276, and a public key certificate 278 ofcomputing system 130 (e.g., that includes a corresponding publiccryptographic key) to one or more of peer systems 180, including peersystem 182.

A programmatic interface maintained by each of the one or more of peersystems 180, including peer system 182, may receive recordation data274, and may perform consensus-based operations that validate applieddigital signature 276 (e.g., based on the public cryptographic keyincluded within public key certificate 278), that generate an additionalledger block 288 of distributed ledger 186 that includes consentdocument 268, consent hash value 270, and application identifier 260C(along with an additional hash value representative of these elements ofincluded data), and that compute competitively a proof-of-work orproof-of-stake associated with distributed ledger 186 (e.g., asestablished based on consensus among peer systems 180). By way ofexample, peer system 182 may successful compute the associatedproof-of-work or proof-of-stake, may generate an updated distributedledger 282 to which additional ledger block 288 is appended (e.g., alatest, longest version of the distributed ledger), and may broadcastupdated distributed ledger 282 across network 120 to additional ones ofpeer systems 180 and further, to other participants in adistributed-ledger network, such as computing system 130, for storage inone or more tangible, non-transitory memories.

Referring back to FIG. 2C, executed consent management module 266 mayperform operations that package OAuth token 272 and permissioning data283 that identifies and characterizes a level of access granted toexecuted third-party application 112, such as, but not limited to,consent hash value 270, into corresponding portions of attestation data284. Further, executed consent management module 266 also apply adigital signature 286 to all or a portion of attestation data 284 usingany appropriate digital signature algorithm in conjunction with privatecryptographic key of computing system 130 (e.g., to further verify anintegrity of attestation data 284 during transmission across unsecuredcommunications channels). Computing system 130 may, for example, performoperations that transmit attestation data 284, digital signature 286,and public key certificate 278 across network 120 to client device 102using any appropriate communications protocol, e.g., via thecorresponding communications interface, such as the transceiver device.

Referring to FIG. 2D, API 208 of executed third-party application 112may receive and route attestation data 284, digital signature 286, andpublic key certificate 278 to a local validation module 289 of executedthird-party application 112. In some instances, when executed byprocessor 104, local validation module 289 may perform operations thatvalidate digital signature 286, e.g., based on the public cryptographickey of computing system 130 included within public key certificate 278.Responsive to the successful validation of digital signature 286,executed local validation module 289 may provide a portion ofpermissioning data 283 (e.g., consent hash value 270) and OAuth token272 as an input to local authorization and consent module 210, which maystore consent hash value 270 and OAuth token 272 within correspondingportions of a local credential data store 292 (e.g., as maintained inmemory 106), either alone or in conjunction with public key certificate278.

As described herein, consent hash value 270 may be representative ofconsent document 268, which identifies, specifies, and characterizes alevel of access to confidential data granted executed third-partyapplication 112 by user 101. In some examples, when provisioned tothird-party application 112 and stored within the one or more tangible,non-transitory memories (e.g., within local credential data store 292),consent hash value 270 may correspond to an attestation, by third-partyapplication 112, of a type of access currently granted by user 101. Forexample, when requesting access to one or more elements of confidentialdata maintained at computing system 130, executed third-partyapplication 112 may present not only OAuth token 272, which confirms andauthentication of an identity of user 101 and an authorization ofexecuted third-party application 112 to access programmatic interfacesmaintained at computing system 130, but also consent hash value 270,which enables computing system 130 to establish whether third-partyapplication 112 (e.g., as executed by client device 102) and consent andpermissioning engine 142 (e.g., as executed by computing system 130)each attest to a common level or type of granted consent.

Further, and as described herein, attestation data 284 includespermissioning data 283, such as consent hash value 270, that, whenprovisioned to executed third-party application 112, represents anattestation by third-party application 112 of a current level of accessto confidential data granted by user 101 (e.g., using any of theexemplary processes described herein). The disclosed embodiments are,however, not limited to permissioning data that includes consent hashvalue 270 and in other examples, permissioning data 283 may also includeall, or a selected portion, of consent document 268, either alone or inaddition to consent hash value 270. In some instances, executedthird-party application 112 may perform any of the exemplary processesdescribed herein to validate the applied digital signature, and to storeeach of these additional elements of permissioning data 283 withincorresponding portions of local consent data store 290.

In some instances, one or more of the exemplary consent andpermissioning protocols described herein, when implemented collectivelyby executed third-party application 112 and executed dynamic consent andpermissioning engine 142, decouple an authorization of executedthird-party application 112 to access computing system 130 through oneor more programmatic interfaces (e.g., the generation of OAuth token272) from the selective grant or denial of access to elements ofconfidential data maintained by computing system 130 (e.g., thegeneration of consent document 268 and consent hash value 270). Bydecoupling authorization from access and consent, one or more of theexemplary processes described herein may enable user 101 to selectivelygrant, or deny, a third-party application access to elements ofconfidential data maintained at computing system 130, on a global basis,on a semi-global basis (e.g., on a data-type- or data-class-specificbasis), or an element-by-element basis. Certain of these exemplaryprocesses may be implemented in addition to, or as an alternate to, manytoken-based consent and authorization processes that, in response to arequest generated by a third-party application to access elements ofconfidential data maintained at computing system 130, require user 101to consent to the requested access to the elements of confidential datawithout condition, or alternatively, deny the requested access to notonly the elements of confidential data, but also to computing system130.

FIGS. 3A and 3B illustrate additional portions of computing environment100, in accordance with disclosed exemplary embodiments. Referring toFIG. 3A, and upon execution by processor 104 of client device 102, oneor more application modules of third-party application 112, such asrequest management module 302, may generate a request 304 to access oneor more elements of confidential data maintained on behalf of user 101by one or more network-connected computing systems within environment100, such as the elements of confidential profile, account, andtransaction data maintained by computing system 130. By way of example,request 304 may correspond to a request, generated by executedthird-party application 112, to access a current account balance of acredit card account held by user 101 and data characterizing a specifiednumber of recent purchase transactions involving that credit cardaccount, e.g., the thirty most-recent purchase transactions involvingthe credit card account.

In some instances, request 304 may include a data identifier 306 of eachof the requested elements of confidential data e.g., unique identifiersof the requested elements of account data and transaction datamaintained by computing system 130. Further, although not illustrated inFIG. 3A, request 304 may also include information that identifies andcharacterizes one or more operations involving the requested elements ofconfidential data, e.g., the presentation of the account balance and thetransaction data within the digital interface by executed third-partyapplication 112.

Request 304 may also include information that identifies, characterizes,or is representative of a level of access to confidential data grantedthird-party application 112. By way of example, executed requestmanagement module 302 may access local credential data store 292 (e.g.,as maintained within a portion of memory 106), extract a consent hashvalue 308, and package consent hash value 308 within a correspondingportion of request 304. In some instances, consent hash value 308 may beprovisioned to executed third-party application 112 by one or moreapplications executed by computing system 130 (e.g., executed consentand permissioning engine 142 of FIG. 1) based on a successful outcome ofany of the exemplary decoupled consent and authorization processesdescribed herein.

In some instances, consent hash value 308 may be representative of acorresponding consent document, which includes information thatidentifies one or more types, classes, or discrete elements ofconfidential data accessible to third-party application 112, and may begenerated by computing system 130 based on an application of any of theexemplary hash algorithms described herein to all or a selected portionof that corresponding consent document. Further, and as describedherein, consent hash value 308 may also represent an attestation, bythird-party application 112, of the level of access to confidential datacurrently granted third-party application 112 by user 101, e.g., usingany of the exemplary decoupled consent and authorization processesdescribed herein.

Further, although not illustrated in FIG. 3A, executed third-partyapplication 112 may also maintain a local copy of the correspondingconsent document within local credential data store 292, e.g., asprovisioned to client device 102 by computing system 130 using any ofthe exemplary processes described herein. In some exemplary embodiments,executed request management module 302 may package all, or a selectedportion, of the local copy of the corresponding consent document intorequest 304, e.g., either in addition to, or as an alternate to, consenthash value 308.

Further, and as illustrated in FIG. 3A, executed request managementmodule 302 may also access and obtain an OAuth token 310 associated withthird-party application 112 from local credential data store 292, andmay package OAuth token 310 within a corresponding portion of request304. OAuth token 310 may, for example, be indicative of anauthentication of an identity of user 101 by computing system 130 and anauthorization of third-party application 112 to access one or moreprogrammatic interfaces established and maintained by computing system130. As described herein, OAuth token 310 may be generated by, andprovisioned to client device 102 by computing system 130 based on asuccessful outcome of any of the exemplary decoupled authorization andconsent processes described herein.

In some instances, executed request management module 302 may alsoperform operations that that package, within corresponding portions ofrequest 304, a unique identifier 312A of executed third-partyapplication 112 (e.g., a unique cryptogram, hash value, or other elementof cryptographic data, etc.) and a unique identifier 312B of clientdevice 102 (e.g., an IP address etc.). Executed request managementmodule 302 may further apply a digital signature 314 to all or a portionof request 304, e.g., using a private cryptographic key of third-partyapplication 112, and may perform operations that cause computing system130 to broadcast request 304, applied digital signature 314, and apublic key certificate 316 of third-party application 112 (e.g., thatincludes a corresponding public cryptographic key) across network 120 tocomputing system 130.

A secure, programmatic interface established and maintained by computingsystem 130, such as application programming interface (API) 318, mayreceive request 304, and may route request 304, applied digitalsignature 314, and a public key certificate 316 to consent andpermissioning engine 142, e.g., as executed by computing system 130. Insome instances, and prior to routing request 304 to executed consent andpermissioning engine 142, API 318 may perform operations (notillustrated in FIG. 3A) that parse request 304, extract OAuth token 310,and perform an initial pre-validation process that determines whether aformat or structure of OAuth token 310 conforms with an expected tokenformat or structure, e.g., associated with the exemplary decoupledauthentication and consent protocols described herein.

If, for example, API 318 were to establish an inconsistency between theformat or structure of OAuth token 310 and the expected token structureor format, API 318 may determine that OAuth token 310 is not valid forthe requested access to the confidential data maintained at computingsystem 130. Based on the established inconsistency, API 318 may discardrequest 304, and computing system 130 may perform operations thatgenerate and transmit an error message across network 120 to clientdevice 102, e.g., via API 208 (not illustrated in FIG. 3A).

In other instances, if API 318 were to establish a consistency betweenthe format or structure of OAuth token 310 and the expected token formator structure, API 318 may route request 304, applied digital signature314, and a public key certificate 316 to executed consent andpermissioning engine 142. For example, an authorization module 320 ofexecuted consent and permissioning engine 142 may receive request 304,applied digital signature 314, and a public key certificate 316, and mayperform operations that validate applied digital signature 314 based ona public cryptographic key of third-party application 112, e.g., asextracted from public key certificate 316. Responsive to an unsuccessfulvalidation of digital signature 314, executed authorization module 320determine that request 304 was corrupted or modified during transmission(e.g., through an interception by one or more malicious parties, etc.),and may discard request 304. Executed authorization module 320 may alsogenerate and transmit an error message across network 120 to clientdevice 102, e.g., via API 208 (not illustrated in FIG. 3A).

In other instances, and responsive to a successful validation of digitalsignature 314, executed authorization module 320 may parse request 304to extract OAuth token 310 and identifier 312A of executed third-partyapplication, and may perform operations that validate OAuth token 310,e.g., as received from executed third-party application 112. Asillustrated in FIG. 3A, executed authorization module 320 may accessconsent data store 138 (e.g., as maintained within data repository 132),and obtain a reference version of the OAuth token, e.g., OAuth token272, that is associated with or linked to identifier 312A within consentdata store 138 and as such, is associated with third-party application112.

Executed authorization module 320 may perform additional operations thatvalidate OAuth token 310 based on a comparison with, and a determinedconsistency with, OAuth token 272. For example, if executedauthorization module 320 were to detect an inconsistency between OAuthtoken 310 (e.g., as received from executed third-party application 112)and OAuth token 272 (e.g., as maintained within consent data store 138),executed authorization module 320 may decline to validate OAuth token310, may reject request 304, and may perform operations that generateand transmit an error message across network 120 to client device 102,e.g., via API 208 (not illustrated in FIG. 3A).

In other instances, if authorization module 320 were to determine thatOAuth token 310 corresponds to or matches OAuth token 272, executedauthorization module 320 may validate OAuth token 310 and request 304.As illustrated in FIG. 3A, authorization module 320 may route validatedrequest 304 to a consent verification module 322 of executed consent andpermissioning engine 142, which may perform any of the exemplaryprocesses described herein to determine whether executed third-partyapplication 112 and executed consent and permissioning engine 142 eachattest to a common level of access previously granted third-partyapplication 112 by user 101.

For example, executed consent verification module 322 may parse request304 and extract consent hash value 308 and identifier 312B of executedthird-party application 112. In some instances, consent hash value 308may correspond to, and be representative of, an attestation bythird-party application 112 of the level of access previously grantedthird-party application 112 by user 101. Further, in some examples,executed consent verification module 322 may also access consent datastore 138, and identify and extract a reference consent hash value,e.g., consent hash value 270, associated with or linked to identifier312A (and OAuth token 272) within consent data store 138. As describedherein, consent hash value 270, which may be generated by executedconsent management module 266 through any of the exemplary decoupledconsent and authentication protocols described herein, may correspondto, and be representative of, an attestation by executed consent andpermissioning engine 142 (and as such, of computing system 130), of thelevel of access previously granted third-party application 112 by user101.

In additional, or alternate, examples, executed consent managementmodule 266 perform operations that obtain consent hash value 270 fromwithin one or more elements of a distributed ledger maintained locallyby, or available to, computing system 130. For instance, computingsystem 130 may maintain, within data repository 132, a local copy ofdistributed ledger, such as updated distributed ledger 282, whichestablishes an immutable and cryptographically secure record of atemporal evolution in the level of access granted executed third-partyapplication 112 by user 101. In some examples, executed consentmanagement module 266 may access one or more consent ledger blocks ofupdated distributed ledger 282, such as ledger block 288, that includeor reference identifier 312A of executed third-party application 112.Executed consent management module 266 may perform operations thatestablish an association between identifier 312A and consent hash value270 within accessed ledger block 288, and that extract consent hashvalue 270 from accessed ledger block 288.

Executed consent verification module 322 may perform additionaloperations that determine whether consent hash value 308 (e.g., asreceived from executed third-party application 112) corresponds to, andmatches, consent hash value 270 (e.g., as generated by executed consentmanagement module 266 of computing system 130). If, for example, consentverification module 322 were to determine an inconsistency betweenconsent hash values 270 and 308, executed consent verification module322 may determine that third-party application 112 attests to a level ofaccess to confidential data that differs from, and is inconsistent with,the level of access to which computing system 130 attests (e.g., throughconsent hash value 270).

Based on the determined inconsistency, consent verification module 322may reject request 304, and may perform operations that generate andtransmit an error message across network 120 to client device 102, e.g.,via API 208 (not illustrated in FIG. 3A). In further instances, andbased on the determined inconsistency, consent verification module 322may also perform operations that provision, to executed third-partyapplication 112, additional information that confirms the level ofaccess to confidential data currently granted to executed third-partyapplication 112 by user 101, such as, but not limited to, consent hashvalue 270 or portions of consent document 268. By way of example,consent verification module 322 may package consent hash value 270and/or the portions of consent document 268 within the generated errormessage, e.g., for transmission across network 120.

In some instances, not illustrated in FIG. 3A, client device 102 mayreceive the generated error message, e.g., via API 208, and executedthird-party application 112 parse the error message to extract consenthash value 270 (and additionally, or alternatively, the portions ofconsent document 268), which may be stored in conjunction with OAuthtoken 310 within memory 106, e.g., as a replacement for consent hashvalue 308 (and additionally, or alternatively, for the previously storedportions of consent document 268). Certain of these exemplary processes,which facilitate a dynamic re-provisioning of the consent hash value (orother information characterizing the level of access currently grantedto executed third-party application 112) to client device 102 withoutinvalidating a previously provisioned OAuth token, may be implemented bycomputing system 130 and by client device 102 in addition to, or as analternate to, certain token-based authorization and consent processthat, when implemented in response to the determined inconsistency,invalidate any existing OAuth token, and require an additionalauthentication of user 101 and a generation of an additional OAuthtoken.

The disclosed exemplary embodiments are, however, not limited toprocesses that maintain a validity of a previously generated OAuth tokenin response to a detected inconsistency between consent hash values 308and 270 and as such, between the attestations of the level of accesspreviously granted to executed third-party application. By way ofexample, consent verification module 322 may establish that theinconsistency between consent hash values 270 and 308, as determinedusing any of the exemplary processes, represents a latest one in asequence or pattern of such determined inconsistencies, e.g., betweenconsent hash values submitted by executed third-party application 112and corresponding consent hash values locally maintained at computingsystem 130. Responsive to the determined sequence or pattern ofinconsistencies, consent verification module 322 may perform operationsthat invalidate OAuth token 272, e.g., through a storage of revocationdata (e.g., an invalidation flag) in conjunction with OAuth token 272within consent data store 138 and additionally or alternatively, througha recordation of the revocation data within an additional one of consentledger blocks 188 of distributed ledger 186.

Referring back to FIG. 3A, if executed consent verification module 322were to determine that consent hash value 308 corresponds to, andmatches, consent hash value 270, executed consent verification module322 may determine that third-party application 112 and computing system130 attest to a common level of access granted to executed third-partyapplication 112 by user 101. Based on the attestation to the commonlevel of granted access, executed consent verification module 322 mayperform operations that route request 304 to a consent detection module324 of executed consent and permissioning engine 142, which may performany of the exemplary processes described herein to determine whether theone or more elements of confidential data requested by executedthird-party application are consistent with the type or level of accesspreviously granted to executed third-party application by user 101.

For example, executed consent detection module 324 may parse request 304to extract data identifiers 306, which uniquely identify each of theelements of confidential data requested by third-party application 112,and may perform operations that access consent data store 138 andextract all, or a selected portion, of consent document 268 associatedwith third-party application 112. In other examples, consent detectionmodule 324, may obtain all or a portion of consent document 268 fromledger block 288, e.g., in association with application identifier 312A.As described herein, consent document 268 may identify one or moretypes, classes, or discrete elements of data (e.g., as maintained bycomputing system 130) that are accessible to executed third-partyapplication 112, and as illustrated in FIG. 3A, consent document 268 andconsent hash value 270 (e.g., that represents consent document 268) mayeach be associated with identifier 312A of executed third-partyapplication 112 within consent data store 138.

In some examples, and based on a comparison between consent document 268and data identifiers 306, executed consent detection module 324 maydetermine whether each of the requested elements of confidential data(e.g., as specified by identifiers 306) is consistent with the level ofaccess previously granted to third-party application 112 by user 101(e.g., as specified within consent document 268). If, for example,executed consent detection module 324 were to detect an inconsistencybetween the previously granted level of access (e.g., as specifiedwithin consent document 268) and the requested elements of confidentialdata, executed consent detection module 324 may determine that therequest 304 is inconsistent with the previously granted level of access.In some instances (not illustrated in FIG. 3A), executed consentdetection module 324 may discard request 304, and may perform operationsthat generate and transmit an error message to executed third-partyapplication 112, e.g., via API 208.

Alternatively, if executed consent detection module 324 were toestablish a consistency between the previously granted level of accessand each of the requested elements of confidential data, executedconsent detection module 324 may perform operations that package each ofdata identifiers 306 into corresponding portions of accessible dataidentifiers 326. By way of example, and as described herein, dataidentifiers 306 may identify requested elements of confidential datathat include, but are not limited to, a current account balance of acredit card account held by user 101 and transaction dates and valuescharacterizing a specified number of recent purchase transactionsinvolving that credit card account, e.g., the thirty most-recentpurchase transactions involving the credit card account.

Additionally, and as described herein, information within consentdocument 268 may indicate that user 101 denied third-party application112 access to elements of confidential customer profile data maintainedat computing system 130, granted third-party application 112 access toany elements of confidential account data maintained on behalf of user101 by computing system 130, and Further, the information within consentdocument 268 may also indicate that user 101 granted third-partyapplication 112 access to elements of confidential transaction datacharacterizing a transaction type, value, and time for one or moretransactions involving user 101, while denying access to any elements ofconfidential transaction data characterizing a payment instrument, aproduct or service, or a counterparty involved in the one or moretransactions.

In some examples, executed consent detection module 324 may establishthat the requested elements of confidential account and transaction data(e.g., as specified by data identifiers 306) are each consistent withthe accessible types, classes, or discrete elements of confidential dataidentified by consent document 268. Executed consent detection module324 may generate accessible data identifiers 326 that include each ofdata identifiers 306, e.g., that identify the current account balance ofthe credit card account and the transaction dates and valuescharacterizing the thirty most-recent purchase transactions involvingthe credit card account. Further, executed consent detection module 324may also generate provisioning data 328 that includes accessible dataidentifiers 312 and the unique identifier 312B of client device 102(e.g., an IP address, a MAC address, etc.), and may provide provisioningdata 328 as an input to a provisioning module 330 executed by computingsystem 130.

In other instances, executed consent detection module 324 may establishthat the requested elements of confidential data associated arepartially inconsistent with the previously granted type or level ofaccess (e.g., as specified within consent document 268). For example,executed consent detection module 324 may determine that a first subsetof the requested elements of the confidential data, as specified by dataidentifiers 306, is consistent with the accessible types, classes, ordiscrete elements of confidential data identified by consent document268, which determining that a second subset of the requested elements ofconfidential data is inconsistent with the accessible types, classes, ordiscrete elements of confidential data identified by consent document268. Executed consent detection module 324 may, in some instances,perform operations that extract a portion of data identifiers 306 thatcorrespond to the accessible first subset, and generate accessible dataidentifiers 326 that include the extracted portion of data identifiers306. Executed consent detection module 324 may further packageaccessible data identifiers 326 and device identifier 312B intoprovisioning data 328, which executed consent detection module 324 mayprovide as an input to a provisioning module 330 of computing system130.

As illustrated in FIG. 3A, and upon execution by computing system 130,provisioning module 330 may receive provisioning data 328, whichincludes accessible data identifiers 326 and device identifier 312B.Executed provisioning module 330 may access confidential data store 136,and identify and perform operations that identify extract elements ofconfidential data 332 that correspond to accessible data identifiers326. For example, confidential data elements 332 may include, amongother things, the current account balance of the credit card accountheld by user 101 (e.g., a balance of $3,775.00), and the elements oftransaction data that specify the transaction dates and values of thethirty, most-recent purchase transactions involving the credit cardaccount. Further, executed provisioning module 330 may encryptconfidential data elements 332 using, for example, a publiccryptographic key associated with or assigned to third-party application112, and may output elements of encrypted confidential data 334.Further, executed provisioning module 330 may also apply a digitalsignature 336 to the elements of encrypted confidential data 334, e.g.,using any appropriate digital signature algorithm in conjunction with aprivate cryptographic key of computing system 130.

Executed provisioning module 330 may package the elements of encryptedconfidential data 334 into corresponding portions of a response torequest 304, e.g., provisioning response 338, along with digitalsignature 336 and a public key certificate 340 of computing system 130(e.g., that includes a corresponding public cryptographic key). In someinstances, executed provisioning module 330 may perform operations thatcause computing system 130 to transmit provisioning response 338 acrossnetwork 120 to client device 102 using any appropriate communicationsprotocol, e.g., via the corresponding communications interface, such asthe transceiver device.

Referring to FIG. 3B, API 208 of executed third-party application 112may receive provisioning response 338, and may route provisioningresponse 338 to local validation module 289 of executed third-partyapplication 112. In some instances, executed local validation module 289may parse provisioning response 338 to extract digital signature 336 andpublic key certificate 340, and may perform operations that validatedigital signature 336 based on the public cryptographic key of computingsystem 130 included within public key certificate 340. If, for example,local validation module 289 were unable to validate digital signature336, local validation module 289 may determine that at least a portionof provisioning response 338 was corrupted or otherwise modified duringtransmission (e.g., through an interception by one or more maliciousparties, etc.), and executed third-party application 112 may discardprovisioning response 338 and await additional provisioning responsegenerated and transmitted by computing system 130 (not illustrated inFIG. 3B).

In other examples, and based on a successful validation of digitalsignature 336, local validation module 289 may provide the elements ofencrypted confidential data 334 as an input to a data processing module342 of executed third-party application 112. Executed data processingmodule 342 may, for instance, perform operations that store the elementsof encrypted confidential data 334 within a corresponding portion ofmemory 106. Executed data processing module 342 may also access aprivate cryptographic key of third-party application 112, and maydecrypt the elements of encrypted confidential data 334, e.g., togenerate decrypted elements of confidential data 344. Executed dataprocessing module 342 may route the decrypted elements of confidentialdata 344 to an operations module 346 of executed third-party application112, which may perform one or more operations on the decrypted elementsof confidential data 344.

The one or more operations may include, among other things, processesthat aggregate, transform, or modify certain of the decrypted elementsof confidential data 344, or that present all or a portion of thedecrypted elements of confidential data 344 within a correspondingdigital interface. As illustrated in FIG. 3B, executed operations module346 may perform operations that generate one or more interface elements348 that provide a graphical or textual representation of correspondingones of the decrypted elements of confidential data 344. Operationsmodule 346 may route each of generated interface elements 348 to displayunit 116A of client device 102, which may render generated interfaceelements 348 for presentation within digital interface 350. For example,digital interface 350 may include interface element 352, which whenrendered for presentation, identifies a current account balance of$3,775.00 for the credit card account held by user 101. Further, digitalinterface 350 may also include additional interface elements 354, whichwhen rendered for presentation, identify the transaction dates andtransaction values of at least a portion of the thirty, most-recenttransactions involving the credit card account of user 101.

In some instances, one or more application programs, engines, or modulesexecuted by client device 102 and computing system 130 (and in someinstances, peer systems 180) may perform one or more of the exemplary,decoupled consent and authorization processes described herein, whichenable a user of client device 102, such as user 101, to providepermission for one or more third-party applications, e.g., third-partyapplication 112, to access elements of confidential maintained on behalfof user 101 at a custodian system operating within environment 100, suchas computing system 130. By way of example, and based on authenticationcredentials (e.g., provided by user 101 in response to the exemplarydigital authentication interfaces described herein) and consent data(e.g., provided by user 101 in response to the exemplary digital consentinterfaces described herein) received from client device 102, computingsystem 130 may perform any of the exemplary decoupled consent andauthorization processes described herein to generate a digital token,e.g., an OAuth token, indicative of a successful authentication of anidentity of user 101, and one or more elements of information, such asthe consent document and consent hash value described herein, indicativeof a level of access granted by user 101 to executed third-partyapplication.

As described herein, computing system 130 may perform operations thatstore the generated OAuth token in conjunction with the consent hashvalue and the consent document, and provision the OAuth token, theconsent hash value, and in some instances, all or a portion of theconsent document to executed third-party application 112. Certain ofthese exemplary processes, which decouple the generation andprovisioning of the OAuth token from the generation and provisioning ofthe consent hash value and corresponding consent document, may beimplemented in addition to, or as an alternate to, one or more existingtoken-based consent and authorization processes, such as the OAuthprotocols described herein, which generate a single digital token (e.g.,an OAuth token) representative and indicative of both the authorizationof user 101 and the consent granted by user 101 to executed third-partyapplication.

In other instances, certain of the exemplary decoupled consent andauthorization processes described herein, when implemented by the one ormore application programs, engines, or modules executed by client device102, computing system 130, and/or peer systems 180, may enable user 101to selectively modify a level of access to confidential data previouslygranted to a third-party application, while maintaining a validity and apendency of the OAuth token previously generated and provisioned to thatthird-party application. By way of example, and referring to asdescribed below, user 101 may provide input to client device 102 thattriggers an execution of an application program, such as, but notlimited to, mobile banking application 110 provisioned to client device102 by computing system 130, or a web browser application capable ofaccessing computing system 130, e.g., via a corresponding web server.

When executed by client device 102, mobile banking application 110and/or the web browser application may obtain information from computingsystem 130 that identifies and characterizes a level of access grantedto user 101 to one or more third-party applications executable at clientdevice 102, such as, but not limited to, third-party applications 112and 114. As described herein, executed mobile banking application 110and/or the executed web browser application may perform operations thatrender the obtained information within one or more display screens of acorresponding digital interface, which may prompt user 101 to provideinput that modifies or revokes a level of access granted to third-partyapplication 112, third-party application 114, and additionally, oralternatively, to the one or more additional third-party applicationsexecutable at client device 102. Based on data identifying the modifiedor revoked access for a particular one of the third-party applications,such as executed third-party application 112 or third-party application114, computing system 130 may perform any of the exemplary processesdescribed herein to generate a modified consent document andcorresponding consent hash value for that particular third-partyapplication, and to provision the corresponding hash value to theparticular third-party application (e.g., alone or in conjunction withthe modified consent document), without invalidating a pending andpreviously generated OAuth token for that particular third-partyapplication, as described in reference to FIGS. 4A-4E.

Referring to FIG. 4A, user 101 may provide input 402 to client device102 (e.g., via input unit 116B) that requests an execution of anapplication program associated with and provisioned by computing system130, such as mobile banking application 110 or a web browsingapplication. For example, and upon execution by client device 102,mobile banking application 110 may generate one or more interfaceelements that, when rendered for presentation by display unit 116A,collectively establish one or more display screens of a digitalauthentication interface (not illustrated in FIG. 4A). The digitalauthentication interface may prompt user 101 to provide, via input unit116B, one or more authentication credentials that uniquely identify user101 at computing system 130, such as, but not limited to, analphanumeric login credential, an alphanumeric password, or one or morebiometric credentials (e.g., a digital image of a face of user 101 or adigital scan of a thumbprint or fingerprint of user 101).

Executed mobile banking application 110 may receive the one or moreauthentication credentials, e.g., via input unit 116B, and may performoperations that authenticate an identity of user 101. For example,executed mobile banking application 110 may authenticate the identity ofuser 101 based on a comparison between the received authenticationcredentials and corresponding locally maintained authenticationcredentials, or based on interaction with computing system 130, asdescribed herein. In other examples (not illustrated in FIG. 4A), ascomputing system 130 provisioned mobile banking application 110 toclient device 102, executed mobile banking application 110 may performoperations that, in conjunction with one or more application programs,engines, or modules executed by computing system 130, implements atoken-based consent and authorization processes (e.g., an OAuthprotocol) to authenticate an identity of user 101 and generate an OAuthtoken indicative of the successful authentication of the identity ofuser 101 and a permission of executed mobile banking application 110 toaccess programmatic interfaces established and maintained by computingsystem 130. Computing system 130 may, for instance, provision the OAuthtoken to executed mobile banking application 110 for storage withinmemory 106.

Responsive to a successful authentication of the identity of user 101,executed mobile banking application 110 may perform operations thatidentify each of the third-party applications executed by client device102, and that generate data requesting, from computing system 130, alevel of access to confidential data currently granted to each of theidentified third-party applications by user 101. By way of example,application repository 108 may maintain third-party applications 112 and114, which may include, but are not limited to, a financial managementapplication that tracks balances of, and transactions involving, one ormore accounts held by user 101 based on confidential data maintained atcomputing system 130 and other computing systems operating withinenvironment 100. In some instances, not illustrated in FIG. 4A, memory106 of client device 102 may maintain, for each of third-partyapplications 112 and 114, a unique application identifier in conjunctionwith a corresponding OAuth token and corresponding elements of elementsof information, such as a consent hash value (or a corresponding consentdocument) indicative of the level of access granted to each ofthird-party applications 112 and 114 to access elements of confidentialdata maintained at computing system 130.

Referring back to FIG. 4A, executed mobile banking application 110 mayaccess a portion of memory 106, such as local credential data store 292,and may perform operations that extract unique application identifier406 of third-party application 112 and unique application identifier 408of third-party application 114. Examples of application identifiers 406and 408 may include, but are not limited to, a unique cryptogram, hashvalue, or other element of cryptographic data that uniquely identifythird-party applications 112 and 114 to one or more computing systemsthat operate within environment 100 and maintain confidential data onbehalf of user 101, such as computing system 130. In some instances,executed mobile banking application 110 may perform operations thatpackage applications identifiers 406 and 408 into corresponding portionsof a request 410 for information that identifies the level of access toconfidential data currently granted each of the third-party applications112 and 114 by user 101, e.g., through any of the exemplary decoupledconsent and authorization processes described herein.

Executed mobile banking application 110 may also perform operations thatpackage, into a portion of request 410, additional data that identifiesexecuted mobile banking application 110 and further, indicates asuccessful confirmation of the identity of user 101, e.g., based on thereceived authentication credentials using any of the exemplary processesdescribed herein. For example, executed mobile banking application 110may access local credential data store 292, and obtain an OAuth token412 associated with executed mobile banking application 110, andfurther, package OAuth token 412 into a corresponding portion of request410. As described herein, OAuth token 412 may be indicative not only asuccessful authentication of the identity of user 101, but also apermission of executed mobile banking application 110 to access the oneor more programmatic interfaces established and maintained by computingsystem 130.

Referring back to FIG. 4A, executed mobile banking application 110 mayperform additional operations that cause client device 102 to transmitrequest 410 across network 120 to computing system 130. A programmaticinterface established by and maintained at computing system 130, such asapplication programming interface (API) 414, may receive request 410,and may route request 410 to consent and permissioning engine 142, e.g.,as executed by computing system 130. In some instances, and prior torouting request 410 to executed consent and permissioning engine 142,API 414 may perform a pre-validation process (not illustrated in FIG.4A) that determines whether a format or structure of OAuth token 412 ofexecuted mobile banking application 110 conforms with an expected tokenformat or structure.

Based on an established consistency between the format or structure ofOAuth token 412 and the expected structure or format, API 414 may routerequest 410 to authorization module 320 of executed consent andpermissioning engine 142. In some instances, executed authorizationmodule 320 may perform any of the exemplary processes described hereinto validate OAuth token 412 based on a comparison with, and a determinedconsistency with, a reference OAuth token locally maintained withinconsent data store 138 on behalf of executed mobile banking application110, e.g., OAuth token 416 maintained within consent data store 138.

For example, if executed authorization module 320 were to detect aninconsistency between OAuth token 412 (e.g., as received from executedmobile banking application 110)) and OAuth token 416 (e.g., asmaintained on behalf of executed mobile banking application 110 withinconsent data store 138), executed authorization module 320 may declineto validate OAuth token 412 and may reject request 410. Executedauthorization module 320 may perform any of the exemplary processesdescribed herein that generate and transmit an error message acrossnetwork 120 to client device 102, e.g., via a programmatic interface(not illustrated in FIG. 3A).

In other instances, if executed authorization module 320 were todetermine that OAuth token 412 corresponds to or matches OAuth token416, executed authorization module 320 may validate OAuth token 412 andrequest 410. Responsive to the successful validation, executedauthorization module 320 may extract application identifiers 406 and 408from now-validated request 410, and may provide application identifiers406 and 408 as an input to a management module of executed consent andpermissioning engine 142, e.g., consent management module 266, which mayperform any of the exemplary processes described herein to establish alevel of access to confidential data previously granted by user 101 toeach of third-party applications identified within request 410, e.g.,third-party applications 112 and 114, and to provision informationidentifying and characterizing the previously granted level of access toexecuted mobile banking application 110.

For example, executed consent management module 266 may receiveapplication identifiers 406 and 408, which uniquely identify respectiveones of third-party applications 112 and 114. In some instances,executed consent management module 266 may perform operations thataccess consent data store 138, and identify and obtain a current consentdocument associated with, and linked to, each of application identifiers406 and 408 within consent data store 138. For example, as illustratedin FIG. 4A, consent data store 138 may maintain, on behalf ofthird-party application 112, consent document 268, consent hash value270, and OAuth token 272, each of which may be associated withapplication identifier 406. Further, consent data store 138 may alsomaintain a consent document 418, a corresponding consent hash value 420,and an OAuth token 422 on behalf of third-party application 114, and mayassociate each of consent document 418, consent hash value 420, andOAuth token 422 within application identifier 408 of third-partyapplication 114.

As described herein, each of consent documents 268 and 418 may includedata that identifies and characterizes a level of access currentlygranted, or denied, to respective ones of third-party applications 112and 114 by user 101. By way of example, consent documents 268 and 418may, for respective ones of third-party applications 112 and 114,identify a selective grant of access to specific types or classes ofconfidential data maintained within confidential data store 136, suchas, but not limited to, customer data, account data, or transaction datamaintained on behalf of user 101 by computing system 130. Additionally,or alternatively, and for respective ones of third-party applications112 and 114, consent documents 268 and 418 may also identify a selectivegrant of access to particular data elements within the specific types orclasses of confidential customer data, account data, or transactiondata.

Further, and as described herein, consent documents 268 and 418 mayidentify, for respective ones of third-party applications 112 and 114, apermission granted by user 101 to perform one or more operations on theaccessed elements of confidential data, such as, but not limited to:presenting the accessed elements of confidential data within one or moredigital interfaces; storing the accessed elements of confidential datawithin one or more locally or remotely accessible data repositories;further processing or aggregating the accessed elements of confidentialdata; or distributing the accessed elements of confidential data toadditional related or unrelated computing systems or to applicationprograms executed by these additional or unrelated systems (e.g.,fourth- and fifth-party applications, etc.). Each of consent documents268 and 418 may be formatted in accordance with one or moredata-interchange formats, such as, but are not limited to, a JavaScriptObject Notation (JSON) format, a YAML format, an Internet-JSON (I-JSON)format, an XML format, or any additional or alternatelanguage-independent, data serialization formats.

In some instances, each of consent documents 268 and 418, consent hashvalues 270 and 420, and OAuth tokens 272 and 422 may be generatedthrough a collective implementation of any of the exemplary, decoupledconsent and authentication processes described herein by computingsystem 130 (e.g., through executed consent and permissioning engine 142)and client device 102 (e.g., via an execution of respective ones ofthird-party applications 112 and 114). For example, consent hash values270 and 420 may be representative of consent documents 268 and 418,respectively, and may be generated through an application of any of theexemplary cryptographic or non-cryptographic hash functions torespective ones of consent documents 268 and 418. Further, and asdescribed herein, OAuth tokens 272 and 422 may be indicative of asuccessful authentication of the identity of user 101 and of anauthorization for respective ones of third-party application 112 and 142to access the programmatic interfaces established or maintained bycomputing system 130.

Referring back to FIG. 4A, executed consent management module 266 mayaccess consent data store 138, and may perform operations that extractconsent document 268 associated with third-party application 112, e.g.,as associated with application identifier 406 within consent data store138. For example, and as described herein, consent document 268 mayindicate that: (i) user 101 denied third-party application 112 access toelements of confidential customer profile data maintained at computingsystem 130; (ii) user 101 granted third-party application 112 access toany elements of confidential account data maintained on behalf of user101 by computing system 130; and (iii) user 101 granted third-partyapplication 112 access to elements of confidential transaction datacharacterizing a transaction type, value, and time for one or moretransactions involving user 101. In some instances, executed consentmanagement module 266 may package application identifier 406 and all ora selected portion of consent document 268 within a correspondingportion of current consent data 424.

Executed consent management module 266 may also perform operations thatextract, from consent data store 138, consent document 418 associatedwith third-party application 114 (e.g., which may be associated withapplication identifier 408 within consent data store 138). For example,and as described herein, consent document 418 may indicate that: (i)user 101 also denied third-party application 114 access to elements ofconfidential customer profile data maintained at computing system 130;(ii) user 101 granted third-party application 114 access to elements ofconfidential account data that identify balances of one or morefinancial services accounts (e.g., deposit accounts, credit cardaccounts, etc.) issued to user 101 by the financial system associatedwith computing system 130; and (iii) user 101 granted third-partyapplication 114 access to elements of confidential transaction datacharacterizing a transaction type, value, and time for transactionsinvolving the one or more financial services accounts. In someinstances, executed consent management module 266 may packageapplication identifier 408 and all or a selected portion of consentdocument 418 within a corresponding portion of current consent data 424.

Although not illustrated in FIG. 4A, executed consent management module266 may also extract, from consent data store 138, consent hash values270 and 420 associated with respective ones of third-party applications112 and 114 (e.g., which are representative of respective ones ofconsent documents 268 and 418), and may package consent hash values 270and 420 into corresponding portions of current consent data 424. In someinstances, by incorporating consent hash values 270 and 420 into currentconsent data 424, certain of the exemplary embodiments may enable clientdevice 102 to verify an integrity of each of consent documents 268 and418 through a calculation of respective local hash values and acomparison of the local hash values against corresponding ones ofconsent hash values 270 and 420.

Further, and in additional to consent documents (and representative hashvalues) that identify a level of access granted by user 101 tothird-party applications 112 and 114, current consent data 424 may alsoinclude additional information identifying certain types, classes, orelements of confidential data that are maintained on behalf by user 101by computing system 130 and as such, that are potentially accessible tothird-party applications 112 and 114, when executed at client device102. For example, executed consent management module 266 may alsoperform operations that package, into current consent data 424,additional information 425, that identifies certain of the availabletypes or classes of confidential data (e.g., confidential profile,account, or transaction data, etc.), along with certain data elementsassociated with each of the types or classes (e.g., elements of profiledata that include governmental identifiers, elements of transaction datathat include transaction times, transaction values, and identifiers ofcorresponding merchants or purchased products, elements of account datathat include account identifiers, account balances, etc.).

Executed consent management module 266 may also apply a digitalsignature 426 to all or a portion of current consent data 424, e.g.,using a private cryptographic key of executed mobile banking application110. Executed consent management module 266 may perform operations thatcause computing system 130 to broadcast current consent data 424,applied digital signature 426, and a public key certificate 428 ofexecuted mobile banking application 110 (e.g., that includes acorresponding public cryptographic key) across network 120 to clientdevice 102.

Referring to FIG. 4B, a secure programmatic interface established andmaintained by executed mobile banking application 110, such applicationprogramming interface (API) 428, may receive current consent data 424(and applied digital signature 426 and public key certificate 428) fromcomputing system 130, and may route current consent data 424, applieddigital signature 426, and public key certificate 428 to executed mobilebanking application 110. In some instances, a verification module 430 ofexecuted mobile banking application 110 may perform operations thatverify an integrity of current consent data 424 in response to asuccessful validation of applied digital signature 426, e.g., based onthe public cryptographic key extracted from public key certificate 428.In other instances, as described herein, current consent data 424 mayalso include consent hash values 270 and 420 (e.g., representative ofrespective ones of consent documents 268 and 418), and executedverification module 430 may perform additional operations that verify anintegrity of each of consent documents 268 and 418 by computingcorresponding local hash values (e.g., through an appropriate one of theexemplary hash functions described herein to consent documents 268 and418) and by comparing the local hash values against respective ones ofconsent hash values 270 and 420.

Based on the verified integrity of current consent data 424 (andadditionally, or alternatively, the verified integrity of consentdocuments 268 and 418), executed verification module 430 may providecurrent consent data 424 as an input to a local consent managementmodule 432 of executed mobile banking application 110. In someinstances, executed local consent management module 432 may processcurrent consent data 424 and generate interface elements 434 that, whenrendered for presentation by display unit 116A, collectively establishone or more display screens of a digital consent management interface436. In some instances, display screen 436A of digital consentmanagement interface 436 may prompt user 101 to provide additional inputto client device 102 that modifies a level of access previously grantedto third-party application 112, third-party application 114, and/orother third-party applications executed by client device 102 on a globalbasis (e.g., a revocation of the previously granted access to allthird-party applications) or alternatively, on a semi-global basis(e.g., a revocation of the previously granted access to a selectedsubset of the third-party applications, such as one or more ofthird-party application 112 or third-party application 114).

For example, and as illustrated in FIG. 4B, display screen 436A mayinclude an interactive interface element, such as slider element 437,that enables user 101 to revoke, e.g., on a global basis, all access toconfidential data previously to any third-party application executed atclient device 102, such as, but not limited to, executed third-partyapplications 112 and 114. In other instances, display screen 436A mayinclude additional interface elements that identify and summarize alevel of access previously granted to each of the third-partyapplications executed at client device 102, such as interface elements438, which identify and summarize the level of access previously grantedto third-party application 112 (e.g., “Third-Party Application A”), andinterface elements 439, which identify and summarize the level of accesspreviously granted to third-party application 113 (e.g., “Third-PartyApplication B”).

Display screen 436A may also include one or more interactive interfaceelements, such as slider elements 440 and 441, that enable user 101 torevoke, on a semi-global basis, the level of access previously grantedto respective ones of third-party application 112 (e.g., slider element440) and third-party application 114 (e.g., slider element 441). In someinstances, display screen 436A may include additional interfaceelements, such as “SUBMIT” element 442, that, when selected by user 101through additional provided input, confirm an election by user 101 torevoke, or maintain, the level of access granted to third-partyapplication 112, third-party application 114, or other third-partyapplications, either on a global or semi-global basis.

In other examples, one or more display screens of digital consentmanagement interface 436 may facilitate a selective modification of thelevel of access to specific classes, types, or discrete elements ofconfidential data previously granted by user 101 to third-partyapplication 112, third-party application 114, or other third-partyapplications executed by client device 102 by user 101. For instance, asillustrated in FIG. 4B, display screen 436A may include additionalinteractive elements, such as interactive elements 443 and 444 that,when selected by user 101 via input provided to client device 102 (e.g.,via input unit 116B), cause executed local consent management module 432to further process current consent data 424 and generate additional onesof interface elements 434 that identify one or more types, classes, ordiscrete elements of confidential data available to the third-partyapplications (e.g., based on information 425 within current consent data424) and further, that identify the level of access to these types,classes, or discrete elements of confidential data granted previously toeach of the third-party applications (e.g., based on consent documents268 and 418 within current consent data 424). When rendered forpresentation within an additional display screen of digital consentmanagement interface 436, the additional ones of interface elements 434may enable user 101 to review or modify the classes, types, or discreteelements of confidential data currently accessible to selected ones ofthe third-party applications, including third-party applications 112 and114.

For example, user 101 may provide further input to client device 102that selects interactive element 444 within display screen 436A, whichindicates an intention by user 101 to review and in some instances,selectively modify, the access previously granted by user 101 tothird-party application 114. Responsive to the further input, executedlocal consent management module 432 may further process current consentdata 424 and generate the additional ones of interface elements 434,which may rendered by display unit 116A within an additional displayscreen 436B of digital consent management interface 436, described belowin reference to FIG. 4C.

Referring to FIG. 4C, display screen 436B may include interactiveinterface elements associated with each of the available types orclasses of confidential data maintained on behalf of user 101 atcomputing system 130, such as slider elements 445, 446, and 447associated with respective ones of the confidential customer profiledata, account data, and transaction data maintained on behalf of user101 at computing system 130. In some instances, a position of each ofslider elements 445, 446, and 447 within display screen 436B may beindicative of an accessibility of the confidential customer profiledata, account data, and transaction data to third-party application 114.For example, when rendered for presentation, slider element 445 may bedisposed initially at position 445A within display screen 436B, whichindicates that user 101 currently denies third-party application 114access to any elements of confidential customer data maintained atcomputing system 130. Further, as illustrated in FIG. 4C, sliderelements 446 and 447 may be disposed initially at respective ones ofpositions 446A and 447A, which indicates that user 101 grantsthird-party application 114 access to at least a portion of theconfidential account and transaction data maintained at computing system130.

Display screen 436B may also include additional interactive interfaceelements, such as slider elements 448 and 449, associated with thediscrete elements of confidential account data maintained at computingsystem 130, such as account numbers, expiration dates, or other accountidentifiers (e.g., associated with slider element 448) and correspondingaccount balances (e.g., associated with slider element 449). Further,display screen 436B may include interactive interface elements, such asslider elements 450, 451, 452, and 453, associated with respective onesof the discrete elements of confidential transaction data maintained atcomputing system 130, such as, but not limited to: (i) a transactiontype, value, and time for one or more transactions involving user 101(e.g., slider element 450); (ii) a product or service involved in theone or more transactions (e.g., slider element 451); (iii) acounterparty or merchant involved in the one or more transactions; and(e.g., slider element 452); and a payment instrument involved in the oneor more transactions (e.g., slider element 453). Display screen 436B mayalso include interface elements, such as “SUBMIT” element 454, that,when selected by user 101 through provided input, confirms amodification to the level of access granted to third-party application114.

In some instances, when rendered for presentation by display unit 116A,an initial disposition of each of slider elements 448, 449, 450, 451,453, and 453 within display screen 436B may be indicative of anaccessibility of the corresponding elements of confidential account andtransaction data to third-party application 114 (e.g., as specifiedwithin consent document 418). For example, as illustrated in FIG. 4C,slider element 448 may be disposed initially at position 448A withindisplay screen 436B, which indicates that user 101 currently deniesthird-party application 114 access to the confidential account numbers,expiration dates, or other account identifiers, and slider element 449may be disposed initially at position 449A within display screen 436B,which indicates that user 101 currently grants third-party application114 access to the confidential account balances. Further, slider element450 may be disposed initially at position 450A within display screen436B, which indicates that user 101 currently grants third-partyapplication 114 access to the confidential transaction type, value, andtime for the one or more transactions involving user 101, and sliderelements 451, 452, and 453 may be disposed initially at respective onesof positions 451A, 452A, and 453A within display screen 436B, whichindicates that user 101 currently denies third-party application 114access to the confidential transaction data identifying the products orservices, counterparties, and payment instruments associated with theone or more transactions involving user 101.

In some exemplary embodiments, may provide further input to clientdevice 102 (e.g., via input unit 116B) indicative of an intention tomodify the level of access to the confidential customer profile,account, or transaction data currently granted to third-partyapplication 114. For example, as illustrated in FIG. 4D, the providedfurther input may re-position slider elements 451 and 452 from positions451A and 452A to positions 451B and 452B within display screen 436,which collectively indicate an intention to grant third-partyapplication 114 access to the confidential transaction data identifyingthe products or services and counterparties associated with the one ormore transactions, e.g., as maintained on behalf of user 101 atcomputing system 130. The further provided input may also indicate aselection of “SUBMIT” element 454.

Referring to FIG. 4E, executed local consent management module 432 mayreceive the further provided input, e.g., additional input 456, viainput unit 116B. In some instances, executed local consent managementmodule 432 may parse additional input 456 to identify the selection of“SUBMIT” element 454, which confirms the modification requested by user101 to the level of access granted to executed third-party application114. Executed local consent management module 432 may further parseadditional input 456 to extract modification information 458 thatidentifies: (i) the selective repositioning of slider element 451 fromposition 451A to position 451B, which indicates an intention by user 101to grant third-party application 114 access to the elements of theconfidential transaction data that specifies the products or servicesassociated with the one or more transactions; and (ii) the selectiverepositioning of slider element 452 from position 452A to position 452B,which indicates an intention by user 101 to grant third-partyapplication 114 access to the elements of the confidential transactiondata that specify the counterparties associated with the one or moretransactions. In some instances, executed local consent managementmodule 432 may package modification information 458 into a correspondingportion of modified consent data 460, along with application identifier408 of third-party application 114.

Further, and as described herein, user 101 may intend to maintain thelevel of access to confidential data currently granted to third-partyapplication 112, e.g., the global denial of access to the elements ofconfidential customer profile data, the global grant of access to theelements of confidential account data, and the selective grant of accessto the elements of confidential transaction data characterizing thetransaction type, value, and time for the one or more transactionsinvolving user 101. In some instances, and based on the parsing ofadditional input 456, executed local consent management module 432 mayfail to detect any requested modification to the level of consentgranted to third-party application 112, and may generate a statusinformation 462 (e.g., a flag, etc.) indicative of the intention of user101 to maintain the level of access currently granted to third-partyapplication 112. As illustrated in FIG. 4E, executed local consentmanagement module 432 may package status information 462 into acorresponding portion of modified consent data 460, along withapplication identifier 406 of third-party application 112, and executedmobile banking application 110 may perform operations that cause clientdevice 102 to transmit modified consent data 460 across network 120 tocomputing system 130 using any appropriate communications protocol,e.g., via a corresponding programmatic interface, such as API 318.

Modified consent data 460 may also include OAuth token 412 of executedmobile banking application 110 and in some instances, a unique deviceidentifier 260B of client device 102 (e.g., an IP address, a MAC addressetc.). Further, although not illustrated in FIG. 4E, executed localconsent management module 432 may also perform any of the exemplaryprocesses described herein to apply a digital signature to all or aportion of modified consent data 460, and executed mobile bankingapplication 110 may perform operations that cause client device 102 totransmit modified consent data 460, the applied digital signature, and apublic key certificate of mobile banking application 110 (which includesa corresponding public key) across network 120 to computing system 130,e.g., via API 318 of executed consent and permissioning engine 142.

For example, API 414 may receive and route modified consent data 460(e.g., either alone or in conjunction with the applied digital signatureand the public key certificate) to authorization module 320 of executedconsent and permissioning engine 142. In some instances, and prior torouting modified consent data 460 to authorization module 320, API 318may perform operations (not illustrated in FIG. 4E) that parse modifiedconsent data 460, extract OAuth token 412, and perform any of theexemplary initial pre-validation processes described herein to determinethat a format or structure of OAuth token 412 conforms with an expectedtoken format or structure.

Based on an established consistency between the format or structure ofOAuth token 412 and the expected structure or format, API 414 may routemodified consent data 460 (e.g., either alone or in conjunction with theapplied digital signature and the public key certificate) toauthorization module 320 of executed consent and permissioning engine142. Executed authorization module 320 may perform any of the exemplaryprocesses described herein to validate OAuth token 412 based on acomparison, and a determined consistency, with a reference locallymaintained within consent data store 138 on behalf of executed mobilebanking application 110, e.g., OAuth token 416. In some instances, andprior to validating OAuth token 412, executed authorization module 320may establish an integrity of modified consent data 460 based on avalidation of the applied digital signature using any of the exemplaryprocesses described herein, e.g., based on the public cryptographic keyincluded within the public key certificate.

For example, if executed authorization module 320 were to detect aninconsistency between OAuth token 412 (e.g., as extracted from modifiedconsent data 460) and OAuth token 416 (e.g., as maintained withinconsent data store 138), executed authorization module 320 may declineto validate OAuth token 412 and may reject modified consent data 460.Executed authorization module 320 may perform any of the exemplaryprocesses described herein that generate and transmit an error messageacross network 120 to client device 102, e.g., via a programmaticinterface (not illustrated in FIG. 4E).

In other instances, if executed authorization module 320 were todetermine that OAuth token 412 corresponds to or matches OAuth token416, authorization module 320 may validate OAuth token 412 and modifiedconsent data 460. Responsive to the successful validation, executedauthorization module 320 may provide modified consent data 460 as aninput to consent management module 266 of executed consent andpermissioning engine 142, which may perform any of the exemplaryprocesses described herein to identify the requested modification to, orrevocation of, the level of consent previously granted to one or morethird-party applications executable at client device 102 (e.g., based onmodified consent data 460), and to generate, for each of the one or morethird-party applications, a modified consent document that reflects therequested modification without invalidating a currently pending OAuthtoken associated with each of the one or more third-party applications.

By way of example, executed consent management module 266 may parsemodified consent data 460 to identify application identifier 406 ofthird-party application 112, and perform operations that may extractstatus information 462 associated with, or linked to, applicationidentifier 406 within modified consent data 460. In some instances,executed consent management module 266 may process status information462, and based on a format or structure of status information 462, orbased on a content of status information 462, detect the intention ofuser 101 to maintain the level of access currently granted tothird-party application 112. Based on the detected intention, executedconsent management module 266 may maintain the pendency and validity ofconsent document 268, consent hash value 270, and OAuth token 272associated with, or linked to, application identifier 406 within consentdata store 138.

Executed consent management module 266 may further parse modifiedconsent data 460 to identify application identifier 408 of third-partyapplication 114, and perform operations that may extract modificationinformation 458 associated with, or linked to, application identifier408 within modified consent data 460. Executed consent management module266 may process modification information 458 to identify one or morerequested modifications to the level of access previously granted tothird-party application 114, the intention of user 101 to grantthird-party application 114 access to the elements of the confidentialtransaction data that specifies the products or services and thecounterparties associated with the one or more transaction. Executedconsent management module 266 may also access consent data store 138,and perform additional operations that extract consent document 418,which may be associated with application identifier 408 of third-partyapplication 114.

In some instances, executed consent management module 266 may performoperations that modify portions of consent document 418 in accordancecorresponding portions of modification information 458, and thatgenerate a modified consent document 464 that reflects the requestedmodifications to the level of access previously granted to third-partyapplication (e.g., that includes both the modified portions of consentdocument 481, and any unchanged portions of consent document 418).Further, executed consent management module 266 may also generate amodified consent hash value 466 based on an application of any of theexemplary hash algorithms described herein to all or a selected portionof modified consent document 464.

For example, modified consent document 464 may indicate that: (i) user101 continues to deny third-party application 114 access to elements ofconfidential customer data maintained at computing system 130; (ii) user101 continues to grant third-party application 114 access to elements ofconfidential account data that identify the account balances of the oneor more financial services accounts issued to user 101 by the financialsystem associated with computing system 130; and (iii) user 101 nowgrants third-party application 114 access to elements of confidentialtransaction data characterizing not only the transaction type, value,and time for the transactions involving the one or more financialservices accounts, but also to the products or services andcounterparties associated with these transactions. As described herein,modified consent document 464 may also be formatted in accordance withone or more data-interchange formats, such as, but are not limited to, aJavaScript Object Notation (JSON) format, a YAML format, anInternet-JSON (I-JSON) format, an XML format, or any additional oralternate language-independent, data serialization formats.

Executed consent management module 266 may perform operations thatstore, within consent data store 138, modified consent document 464 andmodified consent hash value 466 in conjunction with applicationidentifier 408, which identifies third-party application 114, andpreviously generated OAuth token 422, which confirms an authorization ofthird-party application 114 to access programmatic interfacesestablished and maintained by computing system 130. Certain of theseexemplary decoupled consent and authorization processes, which enable auser to selectively modify a level of access granted previously tothird-party application 114 (or other third-party applications executedby client device 102) without invalidated a corresponding OAuth token,may be implemented in addition to, or as an alternate to, conventionaltoken-based consent and authorization protocols, which couple together aglobal revocation of the level of access previously granted tothird-party application 114 and a generation of a new OAuth tokenrepresentative of a level of access newly granted to third-partyapplication 114 by user 101.

In some examples, executed consent management module 266 may performoperations that replace, e.g., overwrite, consent document 418 andconsent hash value 420 with corresponding ones of modified consentdocument 464 and modified consent hash value 466 in consent data store138. In other examples, executed consent management module 266 may storeapplication identifier 408, modified consent document 464, modifiedconsent hash value 466, and OAuth token 422 within an additional portionof consent data store 138, e.g., in conjunction with a correspondingtime stamp or other data element that establishes a record of eachconsent document and consent hash value associated with third-partyapplication 114.

In other examples (not illustrated in FIG. 4E), executed consentmanagement module 266 may perform operations that package applicationidentifier 408, modified consent document 464, and modified consent hashvalue 466 into corresponding portions of recordation data. Executedconsent management module 266 may further apply a digital signature tothe recordation data, e.g., using a private cryptographic key ofcomputing system 130, and may perform operations that cause computingsystem 130 to broadcast the recordation data, the applied digitalsignature, and a public key certificate of computing system 130 (e.g.,that includes a corresponding public cryptographic key) to one or moreof peer systems 180, including peer system 182, which may perform any ofthe exemplary processes described herein to validate the applied digitalsignature (e.g., based on the public cryptographic key included withinthe public key certificate) and generate an additional element ofdistributed ledger 186 that includes application identifier 408,modified consent document 464, and modified consent hash value 466.

By way of example, peer system 182 may successful compute acorresponding, consensus-based proof-of-work or proof-of-stake, maygenerate an updated distributed ledger to which the additional elementis appended (e.g., a latest, longest version of the distributed ledger),and may broadcast the updated distributed ledger across network 120 toadditional ones of peer systems 180 and further, to other participantsin a distributed-ledger network, such as computing system 130, forstorage in one or more tangible, non-transitory memories. In someinstances, the recordation of application identifier 408, modifiedconsent document 464, and modified consent hash value 466 within theupdated distributed ledger may establish an immutable, andcryptographically secure record of the temporal evolution in the levelof consent granted to third-party application by user 101.

Referring back to FIG. 4E, executed consent management module 266 maygenerate modified attestation data 468 that includes modified consenthash value 466 and application identifier 408 of third-party application114 (and in some instances, all or a portion of modified consentdocument 464). In some instances, executed consent management module 266may apply a digital signature 470 to modified attestation data 468 usingany appropriate digital signature algorithm in conjunction with aprivate cryptographic key of computing system 130 (e.g., to furtherverify an integrity of modified attestation data 468 during transmissionacross unsecured communications channels), and may perform operationsthat cause computing system 130 to transmit modified attestation data468, digital signature 470 and a public key certificate 472 of computingsystem 130 (e.g., that includes a corresponding public cryptographickey) across network 120 to client device 102 using any appropriatecommunications protocol, e.g., via the corresponding communicationsinterface, such as the transceiver device.

In some instances, API 427 of executed mobile banking application 110may receive and route modified attestation data 468, digital signature470 and a public key certificate 472 to verification module 430 ofexecuted mobile banking application 110. In some instances, executedverification module 430 may perform any of the exemplary processesdescribed herein to validate digital signature 470 based on the publiccryptographic key of computing system 130 included within public keycertificate 472. Based on the successful validation of digital signature470, executed verification module 430 may provide modified attestationdata 468 as an input to local consent management module 432 of executedmobile banking application 110, which may perform operations that storemodified consent hash value 466 (and in some instances, all or a portionof modified consent document 464) within a portion of local credentialdata store 292 accessible to third-party application 114, e.g., uponexecution by processor 104. As illustrated in FIG. 4E, modified consenthash value 466 (and in some instances, all or a portion of modifiedconsent document 464) may be stored in conjunction with previouslygenerated, existing, and currently valid OAuth token 474 of third-partyapplication 114, which may be generated and provisioned to client device102 by computing system 130 using any of the exemplary processesdescribed herein.

Certain of the exemplary embodiments, including those described hereinin reference to FIGS. 4A-4E, are described in terms of one or moreexemplary application programs executed at client device 102, such asmobile banking application 110. In other examples, the certainoperations performed by executed mobile banking application, asdescribed herein, may also be performed by other application programsexecuted by client device 102, such as an web browser program that, uponexecution of by client device 102, performs processes that generate anddisplay one or more of the exemplary digital consent managementinterfaces described herein.

FIG. 5 is a flowchart of an exemplary process 500 for dynamicallyimplementing hash-based consent and permissioning protocols, inaccordance with disclosed exemplary embodiments. In some instances, anetwork-connected computing system operating within environment 100,such as computing system 130, may perform one or more of the steps ofexemplary process 500. Further, and as described herein, computingsystem 130 may perform one or more of the steps of exemplary process 500based on data exchanged across a secure communications channel with athird-party application executed at a network-connected computing deviceor system, such as third-party application 112 or third-partyapplication 114 executed at client device 102.

Referring to FIG. 5, computing system 130 may perform operations thatestablish a secure channel of communications across network 120 withthird-party application 112 (or third-party application 114) executed atclient device 102 (e.g., in step 502). In some instances, the securecommunications channel may be established through one or moreprogrammatic interfaces established or maintained by computing system130, such as, but not limited to application programming interface (API)204, as described herein.

In some instances, computing system 130 may receive authentication datafrom client device 102 across network 120 (e.g., in step 504). Asdescribed herein, the received authentication data may include one ormore authentication credentials that uniquely identify user 101 ofclient device 102 at computing system 130 and a unique device identifierof client device 102 (e.g., an IP address, a MAC address, etc.).Computing system 130 may perform any of the exemplary processesdescribed herein to extract the one or more authentication credentialsfrom the authentication data, and to authenticate an identity of user101 based on a comparison between the one or more extractedauthentication credentials and the corresponding referenceauthentication credentials maintained at computing system 130 (e.g., instep 506).

If, for example, computing system 130 were to establish an inconsistencybetween the extracted and local authentication credentials (e.g., step506; NO), computing system may decline to authenticate the identity ofuser 101 and may decline to grant the executed third-party application(e.g., third-party application 112 or 114) access to computing system130. In step 508, computing system 130 may perform operations thatgenerate and transmit an error message across network 120 to clientdevice 102, and exemplary process 500 may then be complete in step 510.

In other instances, computing system 130 may establish a consistencybetween the extracted and local authentication credentials, and mayauthenticate an identity of user 101 (e.g., step 506; YES). Responsiveto the successful authentication, computing system 130 may generate andstore confirmation data (e.g., a data flag, etc.) indicative of thesuccessful authentication within an accessible data repository, such asuser database 134, in conjunction with the authentication credentials ofuser 101 (e.g., as a user identifier) or the device identifier of clientdevice 102 (e.g., in step 512).

Computing system 130 may also perform operations that generate, andtransmit data that requests an initiation of one or more of theexemplary decoupled consent and permissioning processes described hereinacross network 120 to client device 102 (e.g., in step 514). By way ofexample, and as described herein, the generated and transmitted requestdata may include information that identifies certain types or classes ofconfidential data maintained on behalf of user 101 by computing system130 (e.g., confidential profile, account, or transaction data, etc.),along with certain data elements associated with each of the types orclasses.

Client device 102 may receive the request data through a correspondingprogrammatic interface. In some instances, the third-party applicationexecuted at client device 102 (e.g., executed third-party applications112 or 114) may perform any of the exemplary processes described hereinto generate one or more display screens of a digital consent interface,which prompt user 101 to provide input to client device specifying alevel of access to the confidential customer, account, or transactiondata maintained on behalf of user 101 by computing system 130 grantedthe executed third-party application by user 101, e.g., on a globalbasis, on a semi-global basis (e.g., on a class- or type-specificbasis), or on an element-by-element basis.

Referring back to FIG. 5, computing system 130 may receive a response tothe transmitted request from client device 102 across network 120 viathe secure communications channel (e.g., in step 516). In someinstances, the received response may include consent data thatidentifies and characterizes the level of access granted to the executedthird-party application (e.g., third-party application 112 or 114executed at client device 102) by user 101. The consent data may, forexample, include information that identifies one or more classes, types,or discrete elements of the confidential customer, account, andtransaction data that are accessible to, or inaccessible to, theexecuted third-party application. Further, the received response mayalso include a unique user identifier of user 101, a unique deviceidentifier of client device 102 (and a unique application identifier ofthe executed third-party application.

In step 518, computing system 130 may perform operations that associatethe received response with a prior and successful authentication of theidentity of user 101, e.g., based on one or more of the user or deviceidentifiers and the confirmation data. Responsive to the association ofthe received response with the prior and successful authentication,computing system 130 may perform any of the exemplary processesdescribed herein to generate an application-specific consent documentthat reflects a level of access granted by user 101 to the executedthird-party application (e.g., in step 520). In some instances, and asdescribed herein, computing system 130 may package all or a portion ofthe consent data (e.g., as extracted from the received response) intocorresponding portions of the application-specific consent document,which may be formatted in accordance with a data interchange format.

Further, in step 520, computing system 130 may also perform any of theexemplary processes described herein to compute an application-specificconsent hash value representative of the application-specific consentdocument, e.g., based on an application of any of the hash algorithmsdescribed herein to all or a selected portion of theapplication-specific consent document, either alone or in conjunctionwithin additional data. In some instances, computing system 130 mayperform any of the exemplary processes described herein to generate anaccess token, e.g., an OAuth token, indicative of the successfulauthentication of the identity of user 101 and of the permission of thethird-party application to access one or more programmatic interfacesestablished or maintained by computing system 130 (e.g., in step 522).

Computing system 130 may also perform any of the exemplary processesdescribed herein to store, within a locally or remotely accessible datarepository, the application-specific consent document, theapplication-specific consent hash value, and the OAuth token inconjunction with the user, device, and application identifiers, andadditionally, or alternatively, to record the application-specificconsent document, the application-specific consent hash value, and theapplication identifier within an additional ledger block of adistributed ledger (e.g., in step 524). In step 526, computing system130 may perform any of the exemplary processes described herein toprovision the application-specific consent hash value, the OAuth token,and in some instances, all or a portion of the application-specificconsent document, to the third-party application executed at clientdevice 102. Exemplary process 500 may then pass back to step 510, andexemplary process 500 is complete.

FIG. 6 is a flowchart of an exemplary process 600 for dynamicallymanaging hash-based consent and permissioning protocols, in accordancewith disclosed exemplary embodiments. In some instances, anetwork-connected computing system operating within environment 100,such as computing system 130, may perform one or more of the steps ofexemplary process 600. Further, and as described herein, computingsystem 130 may perform one or more of the steps of exemplary process 500based on data exchanged across a secure communications channel with athird-party application executed at a network-connected computing deviceor system, such as third-party application 112 or third-partyapplication 114 executed at client device 102.

Referring to FIG. 6, computing system 130 may receive, from clientdevice 102 across network 120, a request for to access one or moreelements of confidential data (e.g., in step 602). In some instances,the request may be generated by the third-party application executed atclient device 102, such as third-party application 112 or third-partyapplication 114, and the requested elements of confidential data mayinclude one or more of the elements of confidential profile, account,and transaction data maintained by computing system 130 on behalf ofuser 101 of client device 102. The received request may, for example,include an identifier of each of the requested elements of confidentialdata, and may further include information that identifies andcharacterizes one or more operations involving the requested elements ofconfidential profile, account, and transaction data.

Further, in some instances, the received request may include informationthat identifies, characterizes, or is representative of a level ofaccess to the elements of confidential profile, account, and transactiondata granted to the executed third-party application by user 101. Forexample, the received request may include an application-specificconsent hash value representative of a correspondingapplication-specific consent document, which includes information thatidentifies one or more types, classes, or discrete elements ofconfidential data accessible to the executed third-party applicationprogram. As described herein, the application-specific consent hashvalue may also represent an attestation, by the executed third-partyapplication, of the level of access to confidential data currentlygranted to the third-party application by user 101, e.g., using any ofthe exemplary decoupled consent and authorization processes describedherein. In other examples, the received request may include all or aportion of the corresponding, application-specific consent document,either in addition to, or as an alternate to, the application-specificconsent hash value.

The received request may also include an OAuth token associated with theexecuted third-party application. The OAuth token may, for example, beindicative of an authentication of an identity of user 101 by computingsystem 130 and an authorization of the executed third-party applicationto access one or more programmatic interfaces established and maintainedby computing system 130. As described herein, the OAuth token may begenerated by, and provisioned to client device 102, by computing system130 based on a successful outcome of any of the exemplary decoupledauthorization and consent processes described herein.

In some instances, computing system 130 may parse the request to extractthe OAuth token associated with the executed third-party application,and may perform any of the exemplary processes described herein tovalidate the extracted OAuth token based on a determined consistencywith a locally accessible reference OAuth token associated with theexecuted third-party application (e.g., in step 604). For example, ifcomputing system 130 were to detect an inconsistency between theextracted and reference OAuth tokens, computing system 130 may declineto validate the extracted OAuth token (step 604; NO), and computingsystem 130 may decline to grant the third-party application access tothe requested elements of confidential data and may discard the request(e.g., in step 606). Computing system 130 may also perform operationsthat generate and transmit an error message across network 120 to clientdevice 102 (e.g., also in step 606). Exemplary process 600 is thencomplete in step 608.

If, however, computing system 130 were to establish a consistencybetween the extracted and reference OAuth tokens (step 604; YES),computing system 130 may validate the extracted OAuth token, and mayperform operations that determine whether the executed third-partyapplication and computing system 130 each attest to a common level ofaccess previously granted third-party application 112 by user 101 (e.g.,in step 610). For example, in step 610, computing system 130 may extractthe consent hash value associated with the executed third-partyapplication from the now-validated request, and may perform any of theexemplary processes described herein to obtain, from an accessible datarepository, a reference consent hash value associated with the executedthird-party application. In other examples, in step 610, computingsystem 130 may obtain the reference consent hash value from one or moreelements of a distributed ledger maintained locally by, or available to,computing system 130, e.g., using any of the exemplary processesdescribed herein.

By way of example, if computing system 130 were to establish aninconsistency between the extracted and reference consent hash valuesassociated with the executed third-party application, computing system130 may determine that the executed third-party application attests to alevel of access to confidential data that differs from, and isinconsistent with, the level of access to which computing system 130attests (step 610; NO). Exemplary process 600 may pass back to step 606,and computing system 130 may decline to granted the executed third-partyapplication access to the requested elements of confidential data, andmay discard the request. Computing system 130 may also performoperations that generate and transmit an error message across network120 to client device 102 (e.g., in also in step 606).

In some instances, and based on the established inconsistency, computingsystem 130 may also perform operations any of the exemplary processesdescribed herein to provision, to the executed third-party application,additional information that confirms the level of access to confidentialdata currently granted to the executed third-party application by user101, such as, but not limited to, the reference consent hash value orportions of a corresponding consent document. For example, computingsystem 130 may package the reference consent hash value and/or theportions of the corresponding consent document within the generatederror message (e.g., in step 606). Exemplary process 600 is thencomplete in step 608

In other examples, if computing system 130 were to determine thatextracted consent hash value corresponds to, and matches, the referenceconsent hash value, computing system 130 may determine that the executedthird-party application and computing system 130 attest to a commonlevel of granted access (step 610; YES). Based on the attestation to thecommon level of granted access, computing system 130 may parse thenow-validated request to extract the identifiers of the requestedelements of confidential data (e.g., in step 612), and may performoperations that extract, from an accessible data repository, all or aselected portion of a reference consent document 268 associated with theexecuted third-party application (e.g., in step 614).

In some instances, and based on the extracted data identifiers and thereference consent document, computing system 130 may perform any of theexemplary processes described herein to determine whether the one ormore elements of confidential data requested by third-party applicationare consistent with the type or level of access previously granted toexecuted third-party application by user 101 (e.g., in step 616). Forexample, in step 612, and based on a comparison between the referenceconsent document and the data identifiers, computing system 130, maydetermine whether each of the requested elements of confidential data(e.g., as specified by the data identifiers) is consistent with thelevel of access previously granted to the executed third-partyapplication by user 101 (e.g., as specified within the reference consentdocument).

If, for example, computing system 130 were to detect an inconsistencybetween the previously granted level of access and the requestedelements of confidential data, computing system 130 may determine thatthe now-validated request is inconsistent with the previously grantedlevel of access (step 616; NO). Exemplary process 600 may pass back tostep 606, and may decline to granted the executed third-partyapplication access to the requested elements of confidential data, andmay discard the request. In some instances, computing system 130 mayperform operations that generate and transmit an error message acrossnetwork 120 to client device 102 (e.g., also in step 606). Exemplaryprocess 600 is then complete in step 608.

Alternatively, if computing system 130 were to establish a consistencybetween the previously granted level of access and at least the subsetof the requested elements of confidential data (e.g., step 616; YES),computing system 130 may perform any of the exemplary processesdescribed herein to extract least the subset of the requested elementsof confidential data from an accessible data repository (e.g., in step618). Further, and as described herein, computing system 130 may encryptthe extracted elements of confidential data using a public cryptographickey associated with or assigned to the executed third-party applicationand in some instances, may apply a digital signature to the encryptedelements of confidential data using any appropriate digital signaturealgorithm in conjunction with a private cryptographic key of computingsystem 130 (e.g., in step 620). Computing system 130 may transmit theencrypted and digitally signed elements of confidential data acrossnetwork 120 to client device 102 using any appropriate communicationsprotocol (e.g., in step 622). Exemplary process 600 is then complete instep 608.

FIG. 7 is a flowchart of an exemplary process 700 for dynamicallymanaging hash-based consent and permissioning protocols, in accordancewith disclosed exemplary embodiments. In some instances, anetwork-connected computing system operating within environment 100,such as computing system 130, may perform one or more of the steps ofexemplary process 700. Further, and as described herein, computingsystem 130 may perform one or more of the steps of exemplary process 700based on data exchanged across a secure communications channel with oneor more application programs executed at a network-connected computingdevice or system, such as, but not limited to, a mobile bankingapplication 110 or a web browser executed at client device 102.

Referring to FIG. 7, computing system 130 may receive a request, fromclient device 102, for consent data identifying and characterizing alevel of access to confidential data previously granted by user 101 toone or more third-party applications executable at client device 102,such as, but not limited to, executable third-party applications 112 and114 described herein (e.g., in step 702). The received request mayinclude a unique application identifier of each of the executablethird-party applications, and in some instances, may be generated byexecuted mobile banking application 110 or by the executed web browserin response to a successful authentication of an identity of user 101,e.g., using any of the exemplary processes described herein.

The received request may also include an OAuth token indicative of thesuccessful authentication of the identity of user 101 and of anauthorization of the one or more executed application programs, such asexecuted mobile banking application 110, to access programmaticinterfaces established or maintained by computing system 130. In someinstances (not illustrated in FIG. 7), computing system 130 may performany of the exemplary processes described herein to verify the OAuthtoken included within the received request based on a comparison with areference OAuth token locally maintained within an accessible datarepository.

In some examples, computing system 130 may extract the applicationidentifiers of each of the executable third-party applications, andbased on the may perform any of the exemplary processes described hereinto identify and obtain a current consent document and a current consenthash value associated with each extracted application identifier and assuch, each executable third-party application (e.g., in step 704).Further, computing system 130 may perform any of the exemplary processesdescribed herein to obtain additional information identifying certaintypes, classes, or elements of confidential customer, account, andtransaction data that are maintained on behalf by user 101 by computingsystem 130 and as such, that are potentially accessible to each of theone or more third-party applications, when executed at client device 102(e.g., in step 706).

Additionally, computing system 130 may perform any of the exemplaryprocesses described herein to generate current consent data thatassociates each consent document with a corresponding identifier of athird-party application program executed at client device 102 (e.g.,third-party applications 112 or 114, etc.) and further, that includesthe additional information identifying the potentially availableclasses, types, or discrete elements of confidential customer, account,and transaction data (e.g., in step 708). Further, in step 708,computing system 130 may perform operations that digitally sign to thecurrent consent data, and that transmit the digitally signed currentconsent data across network 120 to client device 102.

As described herein, client device 102 may receive the digitally signedcurrent consent data through a corresponding programmatic interface. Insome instances, the one or more application programs executed by clientdevice 102, e.g., executed mobile banking application 110 or theexecuted web browser, may validate the digital signature applied to thecurrent consent data, and may perform any of the exemplary processesdescribed herein to process the current consent data and generate one ormore display screens of a digital consent management interface, whichprompts user 101 to provide input to client device modifying a level ofaccess to the confidential customer, account, or transaction datapreviously granted to one or more of the executed third-partyapplications, e.g., on a global basis, on a semi-global basis (e.g., onan application-specific basis, or on a class- or type-specific basis),or on an element-by-element basis.

In step 710, computing system 130 may receive modified consent data fromclient device 102, e.g., across network 120 through a correspondingprogrammatic interface. In some instances, the modified consent data maybe generated by the one or more application programs executed by clientdevice 102 (e.g., executed mobile banking application 110 or theexecuted web browser) based on input provided by user 101 (e.g., toclient device 102 via input unit 1166) in response to the one or moredisplay screens of the digital consent management interface.

As described herein, the modified consent data may associate the uniqueapplication identifier of each of the one or more executable third-partyapplications (e.g., third-party applications 112 or 114) with either:(i) elements of modification information that identify a requestedmodification to the level of access to confidential data previouslygranted by user 101 to an executable third-party application associatedwith the unique application identifier; or (ii) elements of statusinformation indicative of an intention to maintain the level of accessto confidential data previously granted by user 101 to the thatexecutable third-party application. In some instances, a digitalsignature may be applied to the modified consent data, and although notillustrated in FIG. 7, computing system 130 may perform any of theexemplary processes described herein to validate the applied digitalsignature and as such, to validate an integrity of the modified consentdata received from client device 102.

Further, the modified consent data may also include an additional OAuthtoken indicative of the successful authentication of the identity ofuser 101 and of an authorization of the one or more executed applicationprograms, such as executed mobile banking application 110, to accessprogrammatic interfaces established or maintained by computing system130. In some instances (not illustrated in FIG. 7), computing system 130may perform any of the exemplary processes described herein to verifythe additional OAuth token included within the received request based ona comparison with a reference OAuth token locally maintained within anaccessible data repository.

In some instances, computing system 130 may parse the modified consentdata and access the unique application identifier of a correspondingthird-party application executable at client device 102, such as, butnot limited to, third-party applications 112 or 114 (e.g., in step 712).Based on the accessed unique application identifier, computing system130 may perform further operations that determine whether the modifiedconsent data specifies a requested modification to the level of accessto confidential data previously granted by user 101 to the correspondingexecutable third-party application (e.g., in step 714).

For example, and based on portions of the modified consent data,computing system 130 may establish an association between the accessedapplication identifier and one or more elements of modificationinformation, which specify the requested modification to thecorresponding third-party application. Responsive to the establishedassociation between the accessed application identifier and themodification information, computing system 130 may determine thatmodified consent data specifies a requested modification (e.g., step714; YES), and computing system 130 may perform operations that extractthe modification information associated with the accessed applicationidentifier from the modified consent data (e.g., in step 716). Computingsystem 130 may also obtain, from an accessible data repository (e.g.,consent data store 138 of FIG. 1), an existing consent documentassociated with the accessed application identifier and as such, thecorresponding executable third-party application (e.g., also in step716). As described herein, the existing consent document may identifyand characterize the level of access to confidential data previouslygranted to the corresponding executable third-party application by user101.

In some examples, computing system 130 may perform any of the exemplaryprocesses described herein to generate a modified consent document forthe corresponding executable third-party application based on theextracted modification information and the existing consent document,and to generate a modified consent hash value that represents all or aportion of the modified consent document (e.g., in step 718). Themodified consent document may, for example, reflect the requestedmodification to the level of access to confidential data previouslygranted by user 101 to the corresponding executable third-partyapplication, and computing system 130 may generate the modified consentdocument and the modified consent hash value without invalidating anexisting OAuth token associated with the corresponding executablethird-party application.

Computing system 130 may also perform any of the exemplary processesdescribed herein to store, within the accessible data repository (e.g.,consent data store 138), the modified consent document and the modifiedconsent hash value in conjunction with the accessed applicationidentifier, which identifies the corresponding executable third-partyapplication, and the existing OAuth token, which confirms anauthorization of the corresponding executable third-party application toaccess programmatic interfaces established and maintained by computingsystem 130 (e.g., in step 720). Additionally, or alternatively, in step720, computing system 130 may also perform any of the exemplaryprocesses described herein to record the modified consent document, themodified consent hash value, and the accessed application identifierwithin an additional ledger block of a distributed ledger. Exemplaryprocess 700 may then pass to step 722, and computing system 130 mayperform further operations that parse the modified consent data toidentify a presence of one or more additional application identifiers.

Referring back to step 174, and based on portions of the modifiedconsent data, computing system 130 may establish an association betweenthe accessed application identifier and one or more elements of statusinformation, which specify the intention of user 101 to maintain thelevel of access to confidential data previously granted by user 101 tothe corresponding executable third-party application. Responsive to theestablished association between the accessed application identifier andthe status information, computing system 130 may determine that modifiedconsent data fails to specifies a requested modification (e.g., step174; NO), and computing system 130 may decline to modify the consentdocument associated with the corresponding executable third-partyapplication (e.g., in step 724). Exemplary process 700 may then passback to step 722, and computing system 130 may perform furtheroperations that parse the modified consent data to identify a presenceof one or more additional application identifiers.

If, for example, computing system 130 were to identify an additionalapplication identifier within the modified consent data (step 722; YES),exemplary process 700 may pass back to step 714, and computing system130 may perform any of the exemplary processes described herein todetermine whether the modified consent data specifies a requestedmodification to the level of access to confidential data previouslygranted by user 101 to an executable third-party application associatedwith the additional application identifier. Alternatively, if computingsystem 130 were unable to identify any additional applicationidentifiers within the modified consent data (e.g., step 722; NO),computing system 130 may perform any of the exemplary processesdescribed herein to provision the each of the modified consent hashvalues, and in some instances, all or a portion of corresponding ones ofthe modified consent document, to client device 102, for storage inlocal data repository in conjunction with corresponding ones of theexisting, and previously stored, OAuth tokens (e.g., in step 726).Exemplary process 700 is then complete in step 728.

III. Exemplary Hardware and Software Implementations

Embodiments of the subject matter and the functional operationsdescribed in this specification can be implemented in digital electroniccircuitry, in tangibly-embodied computer software or firmware, incomputer hardware, including the structures disclosed in thisspecification and their structural equivalents, or in combinations ofone or more of them. Exemplary embodiments of the subject matterdescribed in this specification, such as, but not limited to, mobilebanking application 110, third-party applications 112 and 114, consentand permissioning engine 142, local authorization and consent module210, APIs 204, 208, 318, validation module 262, consent managementmodule 266, local validation module 289, request management module 302,authorization module 320, consent verification module 322, consentdetection module 324, provisioning module 330, data processing module342, operations module 346, verification module 430, local consentmanagement module 432, can be implemented as one or more computerprograms, i.e., one or more modules of computer program instructionsencoded on a tangible non-transitory program carrier for execution by,or to control the operation of, a data processing apparatus (or acomputer system).

Additionally, or alternatively, the program instructions can be encodedon an artificially generated propagated signal, such as amachine-generated electrical, optical, or electromagnetic signal that isgenerated to encode information for transmission to suitable receiverapparatus for execution by a data processing apparatus. The computerstorage medium can be a machine-readable storage device, amachine-readable storage substrate, a random or serial access memorydevice, or a combination of one or more of them.

The terms “apparatus,” “device,” and “system” refer to data processinghardware and encompass all kinds of apparatus, devices, and machines forprocessing data, including, by way of example, a programmable processorsuch as a graphical processing unit (GPU) or central processing unit(CPU), a computer, or multiple processors or computers. The apparatus,device, or system can also be or further include special purpose logiccircuitry, such as an FPGA (field programmable gate array) or an ASIC(application-specific integrated circuit). The apparatus, device, orsystem can optionally include, in addition to hardware, code thatcreates an execution environment for computer programs, such as codethat constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, or a combination of one or moreof them.

A computer program, which may also be referred to or described as aprogram, software, a software application, a module, a software module,a script, or code, can be written in any form of programming language,including compiled or interpreted languages, or declarative orprocedural languages, and it can be deployed in any form, including as astand-alone program or as a module, component, subroutine, or other unitsuitable for use in a computing environment. A computer program may, butneed not, correspond to a file in a file system. A program can be storedin a portion of a file that holds other programs or data, such as one ormore scripts stored in a markup language document, in a single filededicated to the program in question, or in multiple coordinated files,such as files that store one or more modules, sub-programs, or portionsof code. A computer program can be deployed to be executed on onecomputer or on multiple computers that are located at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

The processes and logic flows described in this specification can beperformed by one or more programmable computers executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows can also be performedby, and apparatus can also be implemented as, special purpose logiccircuitry, such as an FPGA (field programmable gate array), an ASIC(application-specific integrated circuit), one or more processors, orany other suitable logic.

Computers suitable for the execution of a computer program include, byway of example, general or special purpose microprocessors or both, orany other kind of central processing unit. Generally, a CPU will receiveinstructions and data from a read-only memory or a random-access memoryor both. Computers consistent with the disclosed exemplary embodimentsmay include a CPU for performing or executing instructions and one ormore memory devices for storing instructions and data. Generally, acomputer will also include, or be operatively coupled to receive datafrom or transfer data to, or both, one or more mass storage devices forstoring data, such as magnetic, magneto-optical disks, or optical disks.However, a computer need not have such devices. Moreover, a computer canbe embedded in another device, such as a mobile telephone, a personaldigital assistant (PDA), a mobile audio or video player, a game console,a Global Positioning System (GPS) receiver, or a portable storagedevice, such as a universal serial bus (USB) flash drive.

Computer-readable media suitable for storing computer programinstructions and data include all forms of non-volatile memory, mediaand memory devices, including by way of example semiconductor memorydevices, such as EPROM, EEPROM, and flash memory devices; magneticdisks, such as internal hard disks or removable disks; magneto-opticaldisks; and CD-ROM and DVD-ROM disks. The processor and the memory can besupplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subjectmatter described in this specification can be implemented on a computerhaving a display unit, such as a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, such as a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, suchas visual feedback, auditory feedback, or tactile feedback; and inputfrom the user can be received in any form, including acoustic, speech,or tactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's device in response to requests received from the web browser.

Implementations of the subject matter described in this specificationcan be implemented in a computing system that includes a back-endcomponent, such as a data server, or that includes a middlewarecomponent, such as an application server, or that includes a front-endcomponent, such as a computer having a graphical user interface or a Webbrowser through which a user can interact with an implementation of thesubject matter described in this specification, or any combination ofone or more such back-end, middleware, or front-end components. Thecomponents of the system can be interconnected by any form or medium ofdigital data communication, such as a communication network. Examples ofcommunication networks include a local area network (LAN) and a widearea network (WAN), such as the Internet.

The computing system can include clients and servers. A client andserver may be disposed remote from each other and may interact through acommunication network. The relationship of client and server arises byvirtue of computer programs running on the respective computers andhaving a client-server relationship to each other. In someimplementations, a server transmits data, such as an HTML page, to auser device, such as for purposes of displaying data to and receivinguser input from a user interacting with the user device, which acts as aclient. Data generated at the user device, such as a result of the userinteraction, can be received from the user device at the server.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve certainresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments, and it should beunderstood that the described program components and systems maygenerally be integrated together in a single software product orpackaged into multiple software products.

Various embodiments have been described herein with reference to theaccompanying drawings. It will, however, be evident that variousmodifications and changes may be made thereto, and additionalembodiments may be implemented, without departing from the broader scopeof the disclosed embodiments as set forth in the claims that follow.

Further, other embodiments will be apparent to those skilled in the artfrom consideration of the specification and practice of one or moreembodiments of the present disclosure. It is intended, therefore, thatthis disclosure and the examples herein be considered as exemplary only,with a true scope and spirit of the disclosed embodiments beingindicated by the following listing of exemplary claims.

What is claimed is:
 1. An apparatus, comprising: a communicationsinterface; a memory storing instructions; and at least one processorcoupled to the communications interface and the memory, the at least oneprocessor being configured to execute the instructions to: receive, viathe communications interface, consent data from a device, the consentdata identifying identifies one or more elements of data accessible toan application program executed by the device, and the consent datacomprising an application identifier of the executed application programand data identifiers of the one or more data elements; generate aconsent document for the application program based on at least a portionof the consent data, the consent document comprising elements of statusdata that confirm an accessibility of corresponding ones of the dataelements to the executed application program; compute a consent hashvalue representative of the consent document; and generate and transmit,via the communications interface, permissioning data that includes theconsent hash value to the device, the permissioning data comprisinginformation that instructs the executed application program to store theconsent hash value within a local memory of the device and to associatethe consent hash value with an access token associated with the executedapplication program.
 2. The apparatus of claim 1, wherein the at leastone processor is further configured to transmit the permissioning datato the device through a programmatic interface associated with theexecuted application program.
 3. The apparatus of claim 1, wherein theat least one processor is further configured to store the consentdocument and the consent hash value with the application identifier ofthe application program within a portion of the memory.
 4. The apparatusof claim 3, wherein: the access token comprises an OAuth token; the atleast one processor is further configured to generate the OAuth tokenand store the OAuth token, the consent document, the consent hash value,and the application identifier within the portion of the memory; and thepermissioning data comprises the consent hash value and the accesstoken.
 5. The apparatus of claim 1, wherein the at least one processoris further configured to: generate a recordation request that includesthe consent document, the consent hash, and the application identifierof the application program; transmit the generated recordation requestto one or more peer systems via the communications interface, therecordation request comprising additional information that causes theone or more peer systems to perform operations that record the consentdocument, the consent hash, and the application identifier within anelement of a distributed ledger; and receive at least a portion of thedistributed ledger via the communications interface and store thereceived portion of the distributed ledger within the memory.
 6. Theapparatus of claim 1, wherein the at least one processor is furtherconfigured to: receive modified consent data from the device via thecommunications interface, the modified consent data comprisingmodification information that identifies a requested modification to anaccessibility of at least one of the data elements and the applicationidentifier of the application program; based on the applicationidentifier, access a portion of the memory that includes the consentdocument, the consent hash value, and the access token associated withthe executed application program; obtain the consent document fromaccessed portion of the memory; generate a modified consent documentbased on the modification information and the consent document, andgenerate a modified consent hash value representative of the modifiedconsent document, the modified consent document reflecting the requestedmodification to the accessibility of the at least one of the dataelements; and generate and transmit, via the communications interface,modified permissioning data that include the modified consent hash valueto the device, the modified permissioning data comprising additionalinformation that instructs the executed application program to store themodified consent hash value within the local memory of the device and toassociate the modified consent hash value with the access token of theexecuted application program.
 7. The apparatus of claim 6, whereinrequested modification comprises at least one of (i) a modification to alevel of access to the at least one of the data elements or (ii) arevocation of the access to the at least one of the data elements. 8.The apparatus of claim 6, wherein the at least one processor is furtherconfigured to store, within the portion of the memory, the modifiedconsent document and the modified hash value in conjunction with theaccess token and the application identifier.
 9. The apparatus of claim1, wherein the at least one processor is further configured to: receive,via the communications interface, a request for an element of data fromthe device, the request being generated by the executed applicationprogram executed at the device, and the request comprising a localconsent hash value, the access token, and the application identifier;validate the access token, and based on the validated access token,access a portion of the memory that includes the application identifier,the consent document, and the consent hash value associated with theapplication program; determine that the local consent hash valuecorresponds to the consent hash value associated with the applicationprogram, and determine that the requested data element is accessible tothe executed application program based on a corresponding one of theelements of status data associated with the requested data element;based on the determination that the local consent hash value correspondsto the consent hash value and that the requested data element isaccessible to the executed application, load the requested data elementfrom the memory and encrypt the requested data element using a publiccryptographic key associated of the executed application program; andtransmit the encrypted data element to the device via the communicationsinterface.
 10. The apparatus of claim 1, wherein the consent documentcomprises the data identifiers and the elements of status data.
 11. Theapparatus of claim 1, wherein: the one or more data elements areassociated with at least one of a data class or a data type; the consentdata comprises an identifier of the at least one of the data class ordata type; and the consent document comprises an additional element ofstatus data indicative of an accessibility of the one or more dataelements associated with the at least one of the data class or datatype.
 12. A computer-implemented method, comprising: receiving, using atleast one processor, consent data from a device, the consent dataidentifying one or more elements of data accessible to an applicationprogram executed by the device, and the consent data comprising anapplication identifier of the executed application program and dataidentifiers of the one or more data elements; using the at least oneprocessor, generating a consent document for the application programbased on at least a portion of the consent data, the consent documentcomprising elements of status data that confirm an accessibility ofcorresponding ones of the data elements to the executed applicationprogram; computing, using the at least one processor, a hash valuerepresentative of the consent document; and generating and transmitting,using the at least one processor, permissioning data that includes theconsent hash value to the device, the permissioning data comprisinginformation that instructs the executed application program to store theconsent hash value within a local memory of the device and to associatethe consent hash value with an access token associated with the executedapplication program.
 13. An apparatus, comprising: a communicationsinterface; a memory storing instructions; and at least one processorcoupled to the communications interface and to the memory, the at leastone processor being configured to execute the instructions to: receive,via the communications interface, a request for an element of data froma device, the request being generated by an application program executedat the device, and the request comprising a first consent hash value andan application identifier of the application program; obtain a consentdocument associated with the application program and a second consenthash value representative of the consent document, the consent documentcomprising elements of status data that confirm an accessibility ofcorresponding ones of data elements to the executed application program;determine that the first consent hash value corresponds to the secondconsent hash value, and determine that requested data element isaccessible to the application program based on a corresponding one ofthe elements of status data associated with the requested data element;load the requested data element from the memory and encrypt therequested data element; and transmit the encrypted data element to thedevice via the communications interface.
 14. The apparatus of claim 13,wherein the at least one processor is further configured to: encrypt therequested data element using a public cryptographic key associated withthe executed application program; and transmit, via the communicationsinterface, the encrypted data element to the device through aprogrammatic interface associated with the application program.
 15. Theapparatus of claim 13, wherein: the request further comprises a firstaccess token associated with the application program; and the at leastone processor is further configured to: based on the applicationidentifier, access a portion of the memory that includes the consentdocument, the second consent hash value, and a second access tokenassociated with the application program; and obtain the consentdocument, the second consent hash value, and the second access tokenfrom the accessed portion of the memory.
 16. The apparatus of claim 15,wherein the at least one processor is further configured to: establish aconsistency between the first access token and the second access token;and based on the established consistency, determine that the firstconsent hash value corresponds to the second consent hash value, anddetermine that requested data element is accessible to the applicationprogram based on the corresponding one of the elements of status data.17. The apparatus of claim 15, wherein the at least one processor isfurther configured to: determine an inconsistency between the firstconsent hash value and the second consent hash value; based on thedetermined inconsistency, perform operations that invalidate the secondaccess token.
 18. The apparatus of claim 13, wherein; the at least oneprocessor is further configured to: load at least one ledger block of adistributed ledger from the memory; based on the application identifier,access a portion of the at least one ledger block that includes theconsent document and the second consent hash value associated with theapplication program; and obtain the consent document and the second hashvalue from the accessed portion of the at least one ledger block. 19.The apparatus of claim 13, wherein the at least one processor is furtherconfigured to: determine an inconsistency between the first consent hashvalue and the second consent hash value; based on the determinedinconsistency, generate a message that includes the second consent hashvalue; and transmit, via the communications interface, the message tothe device via a programmatic interface associated with the applicationprogram.
 20. The apparatus of claim 13, wherein the at least oneprocessor is further configured to: receive consent data from the devicevia the communications interface, the consent data identifying one ormore additional elements of data accessible to a third-party applicationprogram executed by the device; generate a third consent document forthe third-party application program based on at least a portion of theconsent data and compute a third consent hash value representative ofthe third consent document; and generate and transmit, via thecommunications interface, permissioning data that includes the thirdconsent hash value to the device, the permissioning data comprisinginformation that instructs the executed third-party application programto store the third consent hash value within a local memory of thedevice and to associate the third consent hash value with a third accesstoken associated with the executed third-party application program.